一、文档查询
查询数据的语法格式:
db.collection.find(<query>, [projection])
参数:
Parameter | Type | Description |
---|---|---|
query | document | 可选。查询条件 例如{’‘Id’:001}, 如果要查询全部文档,忽略此参数 |
projection | document | 可选。选择指定的返回值列。如果全部返回,忽略此参数 |
1.1 查询全部
查询comment 集合的全部文档
db.comment.find()
或
db.comment.find({})
结果:
这里你会发现每条文档会有一个叫_id的字段,这个相当于我们原来关系数据库中表的主键,当你在插入文档记录时没有指定该字段, MongoDB会自动创建,其类型是ObjectID类型。
如果我们在插入文档记录时指定该字段也可以,其类型可以是ObjectID类型,也可以是MongoDB支持的任意类型。
1.2 条件查询
查询自增 Id=2 的记录
db.comment.find({"_id":"2"});
#只需要返回一条符合条件的记录,可以使用findOne()
db.comment.findOne({"_id":"2"});
1.3 投影查询 (自定义返回结果列)
如果要查询结果返回部分字段,则需要使用投影查询。
显示字段 {xxx:1} ,剔除字段字段{xxx:0}
注意:1为展示,0为剔除。
db.comment.find({},{articleid:1,content:1,_id:0});
二、文档更新
2.1 局部修改
如果我们想修改_id为1的记录,点赞量为1001,输入以下语句:
db.comment.updateOne({_id:"1"},{$set:{likenum:NumberInt(1002)}});
2.2 批量修改
为了解决这个问题,我们需要使用修改器$set来实现,命令如下:
db.comment.updateMany({"userid":"1003"},{$set:{likenum:NumberInt(1004)}})
2.3 列值增长的修改
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用 $inc 自增运算符来实现。
需求:对id=3 数据的点赞数,每次递增1
db.comment.updateOne({"_id":"3"},{$inc:{likenum:NumberInt(1)}});
三、删除文档
删除文档的语法结构:
db.集合名称.remove(条件)
以下语句将数据全部清空,慎用
db.集合名称.remove({})
例如删除 _id=1 的文档
db.comment.remove({"_id":"1"})