Mongodb 笔记
文章目录
数据迁移
导出集合数据到 json 或 csv 文件
- 命令
1
mongoexport -d dbname -c collectionname -o file --type json/csv -f "field1,field2,...,fieldN"
- 参数
- -d 数据库名
- -c 集合名
- -o 输出文件名
- –type 输出格式,默认 json
- -f 输出字段,如果导出 csv,需指定字段名
导入数据到集合
- 命令
1
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f "field1,field2,...,fieldN"
- 参数
- -d 数据库名
- -c 集合名
- –type 导入格式,默认 json
- -f 导入的字段名
- –headerline 导入csv时,使用第一行的标题作为导入字段
- –file 导入的文件
备份数据库
- 命令
1
mongodump -h dbhost -d dbname -o backup_dir
- 参数
- -h ip[:port]
- -d 数据库名
- -o 备份数据存放目录,需提前建立
恢复数据库
- 命令
1
mongorestore -h dbhost -d dbname --dir backup_dir
- 参数 -h ip[:port] -d 数据库名 –dir 备份数据存放目录 –drop 恢复前,先删除当前数据
操作数据库
- 默认数据库 test
- 创建 use dbname
- 查看当前选择的数据库 db
- 查看数据库列表 show dbs,不显示空数据库
- 删除数据库 use dbname; db.dropDatabase()
操作集合
创建
|
|
删除
|
|
操作文档
insert
- 插入一个文档
1 2 3
db.集合名.insert({}) # 或者 db.集合名.insertOne({})
- 插入多个文档
1 2 3
db.集合名.insert([{},{},{},...,{}]) # 或者 db.集合名.insertMany([{},{},{},...,{}])
find
- 查询匹配的文档
1
db.集合名.find({}).pretty()
- 查询,只返回一个文档
1
db.集合名.findOne({})
- 相等 {“key”:“value”}
- 小于 {“key”:{$lt:“value”}}
- 小于等于 {“key”:{$lte:“value”}}
- 大于 {“key”:{$gt:“value”}}
- 大于等于 {“key”:{$gte:“value”}}
- 不等于 {“key”:{$ne:“value”}}
- and {$and:[{},{}]}
- or {$or:[{},{}]}
- 投影
1
db.集合名.find({},{"key1":1,"key2":0 ...})
- 限制返回文档数量
1
db.集合名.find({}).limit(N)
- 跳过返回文档数量
1
db.集合名.find({}).limit(N).skip(N)
- 排序,1升序,-1降序
1
db.集合名.find({}).sort({"key":1})
update
- 更新一个文档
1
db.集合名.update({},{$set:{}})
- 更新多个文档
1
db.集合名.update({},{$set:{},{multi:true}})
save
|
|
remove
- 删除多条记录
1
db.集合名.remove({})
- 删除一条记录
1
db.集合名.remove({},1)
- 删除集合中的所有文档,相当于 truncate
1
db.集合名.remove()
索引
- 创建索引,1升序,-1降序
1
db.集合名.createIndex({"key1":1,"key2":-1})
聚合
|
|
用户
创建用户
- 管理员权限
1 2 3 4 5 6 7 8
use admin db.createUser( { user: "username", pwd: "password", roles: [{role: "root", db: "admin"}] } )
- 测试库读写权限
1 2 3 4 5 6 7 8
use testdb db.createUser( { user: "username", pwd: "password", roles: ["readWrite"] } )
验证身份
|
|
列出所有用户
|
|
删除数据库用户
|
|
更改用户密码
|
|
文章作者 Colben
上次更新 2019-10-30