一、文档基本CRUD
文档(document)的数据结构和 JSON 基本一样。
集合中插入文档,语法如下:



二、文档的基本查询
查询数据的语法格式如下:
db.collection.find(<query>, [projection])



命令行:db.users.find({userid:"1003"},{userid:1,name:1})
默认 _id 会显示。

再例如:查询所有数据,但只显示 _id、userid、name :
命令行:db.users.find({},{userid:1,name:1})
如果我们想修改_id为1的记录,更改年龄为25,输入以下语句:
命令行:db.users.update({_id:"1"},{age:NumberInt(25)})
查询所有数据,我们会发现,这条文档除了age字段其它字段都不见了:
(2)局部修改

查询所有数据,来查看我们更改的结果:

查看一下:
//修改所有符合条件的数据
db.users.update({userid:"1003"},{$set:{age:NumberInt(22)}},{multi:true}) 查看一下:
提示:如果不加后面的参数{multi:true},则只更新符合条件的第一条记录。
(3)列值增长的修改
如果我们想实现对某列值在原有值的基础上进行增加或减少,可以使用 $inc 运算符来实现。

查看一下:
四、 删除文档
删除文档的语法结构:
命令行:db.集合名称.remove(条件) 我们在这里删除集合users里_id=1的记录,输入以下语句:
查看一下:_id=1的记录删除成功。
以下语句可以将数据全部删除,请慎用:
命令行:db.users.remove({})
这里我运行一下命令行:
查看一下:

(2)按条件统计记录数:
例如:统计userid为1003的记录条数。
命令行:db.users.count({userid:"1003"})


语法如下所示:
结合我们之前学习的知识,我们也可以之搜索userid和age信息。
命令行: db.users.find({},{userid:"1003",age:NumberInt(20)}).sort({userid:-1,age:1})
提示:
MongoDB的模糊查询是通过正则表达式的方式实现的。格式为:

如果要查询名字的内容中以“小”开头的,代码如下:
命令行: db.users.find({name:/^小/})
2、 比较查询
<, <=, >, >= 这个操作符也是很常用的,格式如下:
示例:查询评论点年龄大于18的记录

3、 包含查询
包含使用$in操作符。 示例:查询评论的集合中userid字段包含1003或1004的文档
命令行:db.users.find({userid:{$in:["1003","1004"]}}) 不包含使用$nin操作符。 示例:查询评论集合中userid字段不包含1003和1004的文档。
命令行:db.users.find({userid:{$nin:["1003","1004"]}})
4、 条件连接查询
示例:查询集合中age大于等于17 并且小于2000的文档:
命令行:db.users.find({$and:[{age:{$gt:NumberInt(17)}},{age:{$lt:NumberInt(20)}}]}) 如果两个以上条件之间是或者的关系,我们使用 操作符进行关联,与前面 and的使用方式相同 格式为:
$or:[ { },{ },{ } ] 示例:查询评论集合中userid为1003,或者年龄小于20的文档记录
命令行:db.users.find({$or:[{userid:"1003"},{age:{$lt:1000} }]})
七、常用命令小结