MongoDB语法:
好记性不如烂笔头,先记下咯
选择和创建数据库
- show dbs;//查看所有的数据库
- db;//查看当前窗口所在的数据库
- use 数据库名;//如果数据库不存在,则创建数据库,否则切换到指定数据库。
- 注:show dbs执行结果没有看到test库,但是db查看当前库确是test库,因为test库中刚开始没有任何数据并且是在内存中的,有了数据后就会显示出来了(其他新创建的数据库也是如此)
- db.dropDatabase();//删除当前数据库,默认为 test,故要切换到某个数据库下进行删除
插入和查询文档
- 插入文档的语法格式:
db.集合名称.insert({BSON格式的数据}) - 查询集合的语法格式:
db.集合名称.find() - 查询用户id是233的数据
db.集合名称.find({userId: ‘233’}) - 只查询一条
db.集合名称.findOne({userId: ‘233’}) - 返回指定条数的记录
db.集合名称.find().limit(3)
修改和删除文档
- 修改文档的语法结构:
Db.集合名称.update(条件,修改后的数据) - 如果我们想修改_id为1的记录,名称为张三,输入以下语句:_
Db.集合名称.update({_Id:ObjectId(1)}, {name:’张三’}) - 执行后,我们会发现,这条文档除了name字段其它段都不见了,为了解决这个问题, 我们需要使用修改器$set来实现,命令如下:
Db.集合名称.update({_Id:1}, {$set:{name:’张三’}}) - 删除文档的语法结构:
Db.集合名称.remove(条件) - 以下语句可以将数据全部删除,请慎用
Db.集合名称.remove({})
统计条数
统计记录条件使用count()方法:
Db.集合名称.count()
Db.集合名称.count(条件)
模糊查询
MongoDB的模糊查询是通过正则表达式的方式实现的。格式为: /字符串/
- 比如标题中包含java的帖子
Db.集合名称.find(title:/java/) - 比如查询以“张”开头的名字
Db.集合名称.find(name: /^张/)
大于 小于 不等于 包含 不包含
大于:lt,大于等于lte,不等于in,不包含$nin
- 查询阅读数大于10的帖子
Db.集合名称.find({readNum:{$gt:10}}) - 查询评论集合中userid字段不包含1013和1014的文档
Db.集合名称.find({userId: {$nin:[‘1013’, ‘1014’]}})
条件查询
- 我们如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联。
格式为: $and:[ { },{ },{ } ]
- 示例:查询帖子集合中readNum大于等于1000 并且小于2000的文档
Db.集合名称.find( {KaTeX parse error: Expected '}', got 'EOF' at end of input: …d: [ {readNum:{gte:1000}}, {readNum:{$lte: 2000}} ]} ) - 如果两个以上条件之间是或者的关系,我们使用or:[ { },{ },{ } ]
- 列值增长
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc运算符来实现
Db.集合名称.update({_id:1}, {$inc:{readNum:NumberInt(2)}})