四、MongoDB增删改查

一、增加

  • insert向数据库中插入集合

    • 插入一条记录,传入集合

    db..insert()

    db.students.insert({name:"唐僧",age:60,gender:"M"})

    • 插入多条记录,传入数组

    db.students.insert([{name:"猪八戒",age:53,gender:"M"},{name:"沙僧",age:50,gender:"M"}])

    • 默认生成时间戳id,确保数据唯一,原理是调用如下语句,可以自行指定id

    默认:

    ObjectId()

    自行指定:

    db.students.insert({_id:"001",name:"白骨精",age:60,gender:"W"})

    image

  • insertOne向数据库中插入集合

    • 插入一个文档对象,只能传入一个文档,不能传入数组

    db.students.insertOne({_id:"002",name:"铁扇公主 ",age:60,gender:"W"})

  • insertMany向数据库中插入集合

    • 插入多个文档对象,只能传入一个数组,即使只存在一个文档,不能传入文档

    db.students.insertMany([{_id:"004",name:"牛魔王",age:60,gender:"M"},{_id:"005",name:"红孩儿",age:60,gender:"M"}])

    其实是对insert的拆分

二、查询

查询集合中所有符合条件的文档

  • find进行查询集合所有文档

    db.students.find();

    db.students.find({});

  • find进行条件查询

    {}:表示集合中所有文档;

    {属性:值} 查询属性是指定值的文档

    db.students.find({_id:"002"});

    db.students.find({_id:"002",name:"刘德华"});

    db.students.find({_id:"002"}).count(); ----查看查询的文档的数量

    db.students.find({_id:"002"}).length();

    find返回值为数组,可以通过下标获取对应值

  • findOne进行条件查询

    findOne返回的为Object,可以用返回值.对象

    查询集合中符合条件的第一个文档,最多一条文档

    db.students.findOne({name:"AideHua"});

三、修改

  • update(查询条件,新对象)

    db..update(查询条件,新对象)

    如:db.students.update({_id:"002"},{age:18}) 注意:将会用新对象{age:18}替换之前旧对象

修改前

image

修改后

image

  • update(查询条件,{$set:修改文档属性})

    db.students.update({_id:"004"},{$set:{age:180}})

    image

    • 修改操作符

      set ------修改文档指定属性

      unset------删除文档指定属性(和值无关)

    默认只会修改一个

    如果想要进行修改多个,指定可选参数multi

    db.students.update({_id:"004"},{$set:{age:880}},{multi:true})

  • updateMany()

    同时修改多个符合条件的文档

    • 匹配多少个,就会修改多少个的值

      db.students.updateMany({_id:"004"},{$set:{age:180}})

  • updateOne()

    修改一个符合条件的文档

    • 只会修改匹配的第一个

      db.students.updateOne({_id:"004"},{$set:{age:180}})

  • replaceOne()

    替换文档

四、删除

  • remove()

    • 删除符合条件的而所有文档,默认删除所有,删除单个需要指定可选参数justOne为:true

    删除多个,默认情况

    db.students.remove({name:"Liming"})

    删除单个

    db.students.remove({name:"Liming"},true)

    • 必须指定参数,否则报错,注意和find()区别

    db.students.remove();//报错

    • 删除所有文档,但是集合还是存在的

    db.students.remove({});

    • 删除集合,若是数据库的最后一个人集合,那么数据库也会被删除

    db.students.drop();

  • deleteOne()

    • 删除一个

    db.students.deleteOne({name:"Liming"})

  • deleteMany()

    • 删除多个

    db.students.deleteMany({name:"Liming"})

posted @ 2022-01-10 20:58  码农阿亮  阅读(198)  评论(0编辑  收藏  举报