mongodb数据库、集合、文档的增删改查语法总结
| 数据库 | 集合 | 文档 |
增 | 语法: use 数据库名称
示例: use test #如果数据库不存在,则创建数据库,否则切换到该数据库。 # 注意:使用show dbs命令,是看不到新创建的数据库,因为还没有插入数据
| 语法: db.createCollection("集合名称")
示例: db.createCollection("user") | 语法: db.集合名称.insert(document)
示例: db.user.insert({ _id:"1", name:"chushiyan", password:"123456", email:"chushiyan0415@163.com", age:NumberInt(120) });
|
删 | 语法: db.dropDatabase() # 删除当前数据库
示例: # 先切到该数据库 user test db.dropDatabase()
| 语法: db.集合名称.drop()
示例: db.user.drop()
| 语法: db.集合名称.remove(条件)
示例: # 删除user集合所有文档 db.user.remove({})
# 删除name等于小明的记录 db.user.remove({name:"小明"})
|
改 |
|
| 语法: db.集合名称.update(条件,修改后的数据)
示例: # 修改_id为1的用户age为1 db.user.update({_id:"1"}, {age:NumberInt(1)})
执行上面这条文档除了age字段其它字段都不见了, 正确的语法: 我们需要使用修改器$set来实现,命令如下: db.user.update({_id:"1"}, {$set:{age:NumberInt(20)}})
列值增长 对某列值在原有值的基础上进行增加或减少, 可以使用$inc运算符来实现 db.user.update( {_id:"2"}, {$inc:{age:NumberInt(1)}} ) |
查 |
#列出所有数据库 show dbs |
# 列出当前数据库所有集合 show collections | 一、模糊查询 # 查询name包含“李”的所有文档 db.user.find({name:/李/})
#查询name以“李”开头的所有文档 db.user.find({name:/^李/})
二、条件查询 语法: db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
示例:查询age大于18的记录 db.user.find({age:{$gt:18}})
三、包含与不包含
包含使用$in操作符: 查询user集合中_id字段值包含在["1","3"]的文档 db.user.find({_id:{$in:["1","3"]}})
不包含使用$nin操作符: 查询user集合中_id字段值不包含在["1","3"]的文档 db.user.find({_id:{$nin:["1","3"]}})
四、条件连接 我们如果需要查询同时满足两个以上条件, 需要使用$and操作符将条件进行关联。 格式为: $and:[ { },{ },{ } ]
示例: 查询user集合中age大于等于18并且小于20的文档 db.user.find( {$and:[{age:{$gte:18}} ,{age:{$lt:20} }]} )
如果两个以上条件之间是或者的关系, 我们使用 操作符进行关联, 与前面 and的使用方式相同格式为: $or:[ { },{ },{ } ]
示例: 查询user集合中_id为1,或者age小于18的文档 db.user.find( {$or:[ {_id:"1"} ,{age:{$lt:18} }]} )
五、统计条数 统计记录条件使用count()方法。 以下语句统计user集合的记录数 db.user.count()
六、按条件统计 统计age为1的记录条数 db.user.count({age:1})
|