当前位置:Gxlcms > 数据库问题 > MongoDB文档操作(5)

MongoDB文档操作(5)

时间:2021-07-01 10:21:17 帮助过:38人阅读

添加文档

语法:

db.集合名.insert({k1:"v1", k2:"v2"....})

注意:

(1)文档就是键值对,数据类型是BSON格式,支持的值更加丰富。

比如:db.集合名.insert({name:"bashlog", spc:{weight:100, address:"henan"}})

(2)在添加的文档里面,都有一个‘_id‘的键,值为对象类型。

技术图片

ObjectId类型:

每个文档都有一个_id字段,并且同一集合的_id值唯一,该字段可以是任意类型的数据,默认是一个ObjectId对象。

ObjectId对象数据组成:时间戳|机器码|PID|计数器

_id的键值我们可以自己输入,但是不能重复

注意:在插入数据的时候,如果_id的值重复则会报错。

技术图片

(3)可以使用js代码来完成批量插入文档。

技术图片

删除文档

语法:

db.集合名.remove({条件}) # 不写条件等于删除所有文档

示例1:删除collect1集合中name等于AK3的文档

db.collect1.remove({name:"ack3"})

技术图片

示例2:删除collect1集合中年龄大于25的文档

使用操作符完成

常用操作符

$lt(<), $lte(<=), $gt(>), $gte(>=), $ne(<>), $in, $nin, $or, $not, $mod(取模), $exists, $where

db.collect1.remove({age:{‘$gt‘:25}})

技术图片

更新文档

语法:

db.集合名.update({条件},{新的文档},是否新增,是否修改多条)
db.集合名.update(条件,新文档,是否新增,是否修改多条)

是否新增:如果值是1(true),则没有满足条件的就添加。

是否修改多条:若值是1(true),如果满足条件的有多个文档则都要修改

方法一:直接修改

示例:在collect2集合里面,要修改age=27的文档名称为AK48

db.collect2.update({age:27},{name:"AK48"})

技术图片

注意:以上修改方式,会丢失其它的键值,因此不推荐使用。

方法二:使用修改器

示例:要修改age=25的文档名称为"big_bash_log",并且其它键值不能丢失

$inc:加一个数字

set:修改某一个字段,如果该字段不存在就增加这个字段

语法:

db.集合名.update({条件},{修改器的名称:{修改的键:修改的新值}})

技术图片

修改age=12的文档,年龄增加10岁

db.collect2.update({age:12},{‘$inc‘:{age:10}})

技术图片

查询文档

语法:

db.集合名.find({条件})

示例:取出collect2集合里面的第一个文档

db.collect2.findOne()

技术图片

示例:取出collect2集合里面name=bash的文档

db.collect2.find({name:"bash"})

技术图片

示例:取出collect2集合中age大于11的文档

db.collect2.find({age:{‘$gt‘:11}})

技术图片

示例:取出collect2集合里面的文档,只显示name键

db.collect2.find({},{name:1}) # 1表示只显示name的键值

技术图片

name=0表示,显示除了name以外的键值

技术图片

示例:根据年龄的(降序|升序)来显示文档

db.集合名.find().sort({age:1}) # 根据年龄升序
db.集合名.find().sort({age:-1}) # 根据年龄降序

技术图片

示例:显示collect2集合中前2个文档

db.collect2.find().limit(2)

技术图片

排序并取前两个

技术图片

示例:统计collect2集合中文档的个数

db.集合名.count() # 返回集合中有多少个文档

技术图片

MongoDB文档操作(5)

标签:not   对象类型   lte   big   pre   年龄   loading   键值对   支持   

人气教程排行