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: /^张/)
大于 小于 不等于 包含 不包含
大于: g t , 小 于 gt,小于 gt,小于lt,大于等于 g t e , 小 于 等 于 gte,小于等于 gte,小于等于lte,不等于 n e , 包 含 ne,包含 ne,包含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}} ]} )
-
如果两个以上条件之间是或者的关系,我们使用 o r 用 法 和 a n d 相 同 : or 用法和and相同: or用法和and相同:or:[ { },{ },{ } ]
-
列值增长
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用$inc运算符来实现
Db.集合名称.update({_id:1}, {$inc:{readNum:NumberInt(2)}})