一、插入文档
1、db.集合名.insert()
插入一个:db.user.insert({name:"Join",age:13,address:"beijing",isDelete:0})
插入多个:db.user.insert([{name:"Join",age:13,address:"beijing",isDelete:0},{name:"Join2",age:13,address:"beijing",isDelete:0},{name:"Join3",age:13,address:"beijing",isDelete:0}])
2、db.集合名.save()
指定_id则为修改更新:db.user.save({_id:ObjectId("234567892345678"),name:"Join",age:13,address:"beijing",isDelete:0})
不指定_id则和insert是一样的,为新增:db.user.save({name:"Join4",age:13,address:"beijing",isDelete:0})
二、文档更新
1、更新已经存在的文档:db.集合名.update()
db.集合名.update(<query>,<update>,{upset:<boolean>,multi:<boolean>,writeConcern:<document>})
query:查询条件
update操作符:$set----立即更新;$inc----在原有的基础上累积增加后更新
multi:可选项,默认为false,如果为true则只更新第一条
writeConcert:可选项,抛出异常的级别
eg:db.user.update({name:"Join"},{$set:{age:21}})
2、通过传入文档替换已有的文档,db.集合名.save()
db.集合名.save(文档数据,{writeConcern:<document>})
三、文档删除
db.集合名.remove()
db.集合名.remove(<query>,{justOne:<boolean>,writeConcern:<document>})
四、文档查询
1、查询集合中所有的文档:db.集合名.find()
2、查询符合要求的文档:db.集合名.find(<query>,{<key>:1,<key>:2...}),query为判断查询的要求,key为查询出显示的哪些内容1为显示
eg:db.user.find({age:21},{age:1,name:1})
3、以格式化的方式显示:pretty()
eg:db.user.find().pretty()
4、查询后显示符合结果的第一条内容:findOne()
5、查询条件 操作符
内容 | 符合 | 表达式 |
大于 | $gt | db.集合名.({<key>:{$gt:<value>}}) |
大于等于 | $gte | db.集合名.({<key>:{$gte:<value>}}) |
小于 | $lt | db.集合名.({<key>:{$lt:<value>}}) |
小于等于 | $lte | db.集合名.({<key>:{$lte:<value>}}) |
等于 | : | db.集合名.({<key>:<value>}) |
不等于 | $ne | db.集合名.({<key>:{$ne:<value>}}) |
使用_id查询 | _id | db.集合名.({"_id":ObjectId("id值")}) |
符合结果的数量 | count | db.集合名.({<key>:<value>}).count() |
查询结果中某个字段是否包含某个值 | /包含的值/ | db.集合名.({name:/io/}) |
查询结果中某个字段是否以某值开头 | /^包含的值/ | db.集合名.({name:/^J/}) |
6、条件查询 and 、or
and:db.集合名.find({<key>:<value>,<key2>:<value2>,<key3>:<value3>})
or :db.集合名.find({$or:[{<key>:<value>},{<key2>:<value2>}]})
7、limit、skip
limit():读取指定数量的数据内容
eg:db.集合名.find().limit(5) 读取前5条数据
skip():跳过指定数量的数据内容
eg:db.集合名.find().skip(5) 跳过前5条数据
8、排序sort
db.集合名.find().sort({key:1})
1为升序排列,-1为降序排列