这是本文档旧的修订版!
MongoDB
- Official site: mongodb.org
- Install: 使用官方提供的源:ubuntu安装mongodb的教程
- Start:
sudo service mongod start
- Log:
/var/log/mongodb/mongod.log
Tutorials
mongo [–port ][–host ]
进入mongodb命令行, 默认port为27017
, hostlocalhost
- 命令行支持javascript语法
- 帮助:
help
- 显示db列表:
show dbs
或show databases
- 显示当前db:
db
- 切换db:
use dbname
可以直接切换到一个不存在的db来插入数据, 相当于创建. - 显示当前db的collection列表
show collections
- 插入数据,注意collection可以是事先不存在的, 比如下面的
testData
,命令执行后会自动创建j = { name : "mongo" } k = { x : 3 } db.testData.insert( j ) db.testData.insert( k ) //或者循环插入 for (var i = 1; i <= 25; i++) db.testData.insert( { x : i } )
- 查看插入的数据:
db.testData.find()
. mongodb要求每条数据都要有_id
, 如果没指定, 会自动创建一个. find()
或其它获取方式的返回数据, 称为cursor
, 可对此结果进行操作, 比如var c = db.testData.find() while ( c.hasNext() ) printjson( c.next() )
Auth
- mongodb 启动时加
–auth
才开启用户认证; - mongodb 开启认证后, 默认 admin 数据库没有用户,此时可添加用户及相应的 role , 一般是
userAdminAnyDatabase
,即能对所有数据库进行用户管理;use admin; db.createUser( { user: "myUserAdmin", pwd: "abc123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
- admin 数据库里有用户后,后续操作就需要认证。用户管理需要以 admin 数据库登录再
use dbname
,然后用用户管理函数操作 - 可以给用户添加
dbAdminAnyDatabase
角色以操作所有数据库数据(userAdmin 只操作用户)。
Tools
Mongoose
- Mongoose: MongoDB ODM
- schema
Tips
- mongo 的 docker 镜像,在 OSX/Windows 下不能用容器外存储。