Краткое руководство, чтобы показать вам, как выполнять основные операции, такие как создание, обновление, поиск, удаление записей и индексация в 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]