Краткое руководство, чтобы показать вам, как выполнять основные операции, такие как создание, обновление, поиск, удаление записей и индексация в MongoDB. В этом примере используется MongoDB 2.0.7, работающий в Mac OS X 10.8, клиентская и серверная консоль MongoDB работают на локальном хосте, на одном компьютере.
1. Установите MongoDB
Установите MongoDB по ссылке://mongodb/how-to-install-mongodb-on-windows/[Windows], ссылка://mongodb/how-to-install-mongodb-on-ubuntu/[Ubuntu]или ссылка://mongodb/как установить mongodb-на-mac-os-x/[Mac OS X]. Установка проста, в основном просто скачайте zip-файл MongoDB, запустите дополнительно и запустите команду -
$ MongoDB-folder/bin/mongod
.
Использует
mongod
для запуска MongoDB.
$./mongod Tue Sep 11 21:55:36[initandlisten]MongoDB starting : pid=72280 port=27017 dbpath=/data/db/64-bit host=Yongs-MacBook-Air.local Tue Sep 11 21:55:36[initandlisten]db version v2.0.7, pdfile version 4.5 Tue Sep 11 21:55:36[initandlisten]options: {} Tue Sep 11 21:55:36[initandlisten]journal dir=/data/db/journal Tue Sep 11 21:55:36[initandlisten]recover : no journal files present, no recovery needed Tue Sep 11 21:55:36[websvr]admin web console waiting for connections on port 28017 Tue Sep 11 21:55:36[initandlisten]waiting for connections on port 27017
2. Подключить MongoDB
Для подключения MongoDB используется
$ MongoDB-folder/bin/mongo
$ ./mongo MongoDB shell version: 2.0.7 connecting to: test
3. Создать базу данных или таблицу (коллекцию)
В MongoDB база данных и таблица создаются автоматически при первой вставке данных. Использует
use database-name
, чтобы переключиться на вашу базу данных (даже это еще не создано).
В приведенном ниже примере после того, как вы вставили одну запись, база данных «mkyong» и таблица «users» создаются на лету.
$ ./mongo MongoDB shell version: 2.0.7 connecting to: test > use mkyong switched to db mkyong > db.users.insert({username:"mkyong",password:"123456"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" }
Три команды базы данных, которые вы должны знать.
,
show dbs
- список всех баз данных.
,
use db
name
- переключается на dbname.
,
show collection
- список всех таблиц в текущей выбранной базе данных.
4. Вставить запись
Чтобы вставить запись, используется
db.tablename.insert ({data})
или
db.tablename.save ({data})
, оба работают, понятия не имею, почему MongoDB создал оба.
> db.users.save({username:"google",password:"google123"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "username" : "mkyong", "password" : "123456" } { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
5. Обновить запись
Чтобы обновить запись, используется
db.tablename.update ({критерии}, {$ set: {новое значение}})
. В приведенном ниже примере пароль имени пользователя: «mkyong» обновляется.
> db.users.update({username:"mkyong"},{$set:{password:"hello123"}}) > db.users.find() { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" } { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
6. Найти записи
Для поиска или запроса записей используется
db.tablename.find ({критерии})
.
-
6.1 ** Список всех записей из таблицы «пользователи».
> db.users.find() { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" } { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
-
6.2 ** Поиск записей, где имя пользователя «Google»
> db.users.find({username:"google"}) { "__id" : ObjectId("504f48ea17f6c778042c3c0a"), "username" : "google", "password" : "google123" }
-
6.3 ** Поиск записей, где длина имени пользователя меньше или равна 2
db.users.find({$where:"this.username.length<=2"})
-
6.4 ** Поиск записей, где существует поле имени пользователя.
db.users.find({username:{$exists : true}})
7. Удалить запись
Чтобы удалить запись, используется
db.tablename.remove ({критерии})
. В приведенном ниже примере запись с именем пользователя "google" удалена.
> db.users.remove({username:"google"}) > db.users.find() { "__id" : ObjectId("504f45cd17f6c778042c3c07"), "password" : "hello123", "username" : "mkyong" }
-
Примечание ** Чтобы удалить все записи из таблицы, используется
db.tablename.remove ()
. Чтобы удалить таблицу, используетсяdb.tablename.drop ()
.
8. Индексация
Индекс может помочь вам увеличить скорость запроса данных.
-
8.1 ** Список всех индексов таблицы «users», по умолчанию столбец «__id» всегда является первичным ключом и создается автоматически.
> db.users.getIndexes()[ { "v" : 1, "key" : { "__id" : 1 }, "ns" : "mkyong.users", "name" : "__id__" }]>
-
8.2 ** Для создания индекса используется
db.tablename.ensureIndex (column)
. В приведенном ниже примере создается индекс для столбца «имя пользователя».
> db.users.ensureIndex({username:1}) > db.users.getIndexes()[ { "v" : 1, "key" : { "__id" : 1 }, "ns" : "mkyong.users", "name" : "__id__" }, { "v" : 1, "key" : { "username" : 1 }, "ns" : "mkyong.users", "name" : "username__1" }].... ** 8.3 ** Для удаления индекса используется `db.tablename.dropIndex (column)`. В приведенном ниже примере индекс по столбцу «имя пользователя» удален или удален.
db.users.dropIndex({username:1}) { "nIndexesWas" : 2, "ok" : 1 } db.users.getIndexes()[ { "v" : 1, "key" : { " id" : 1 }, "ns" : "mkyong.users", "name" : " id__" }]>
** 8.4 ** Для создания уникального индекса используется `db.tablename.ensureIndex ({column}, {unique: true})`. В приведенном ниже примере уникальный индекс создается для столбца «имя пользователя».
db.users.ensureIndex({username:1},{unique:true}); db.users.getIndexes()[ { "v" : 1, "key" : { " id" : 1 }, "ns" : "mkyong.users", "name" : " id " }, { "v" : 1, "key" : { "username" : 1 }, "unique" : true, "ns" : "mkyong.users", "name" : "username 1" }]….
10. Помощь
Наконец, с помощью
help ()
вы узнаете, как работать с MongoDB.
10.1
help
- Все доступные команды.
> help db.help() help on db methods db.mycoll.help() help on collection methods rs.help() help on replica set methods help admin administrative help help connect connecting to a db help help keys key shortcuts //...
10.2
db.help ()
- показывает справку по БД.
> db.help() DB methods: db.addUser(username, password[, readOnly=false]) db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) returns the help for the command db.copyDatabase(fromdb, todb, fromhost) //...
10.3
db.collection.help ()
- показывает справку по коллекции (таблица).
> db.users.help() DBCollection help db.users.find().help() - show DBCursor help db.users.count() db.users.dataSize() db.users.distinct( key ) - eg. db.users.distinct( 'x' ) db.users.drop() drop the collection db.users.dropIndex(name) //...
10.4
db.collection.function.help ()
- показывает справку по функции.
> db.users.find().help() find() modifiers .sort( {...} ) .limit( n ) .skip( n ) .count() - total # of objects matching query, ignores skip,limit .size() - total # of objects cursor would return, honors skip,limit .explain([verbose]) //...
Готово. Надеюсь, что это краткое изложение команд MongoDB может помочь другим.
Рекомендации
, http://www.mongodb.org/display/DOCS/Tutorial [Official MongoDB
учебные пособия], MongoDB Indexes
ссылка://тег/hello-world/[привет мир]ссылка://тег/mongodb/[mongodb]