( 八 )、 MongoDB 文档的插入、更新、删除

( 八 )、 MongoDB 文档的插入、更新、删除

 

 

1、简介

官网: https://docs.mongodb.com/manual/crud/

 本章节我们介绍 对 mongoDB 集合中的 数据进行增删改查操作。文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式,BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

 

2、插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)
或
db.COLLECTION_NAME.save(document)
  • save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,3.2 版本之后可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
  • insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。

2.1、db.collection.insertOne() 用于向集合插入一个新文档,语法格式如下:

db.collection.insertOne(
   <document>,
   {
      writeConcern: <document>
   }
)

 

2.2、db.collection.insertMany() 用于向集合插入一个多个文档,语法格式如下:

db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)

参数说明:

  • document:要写入的文档。
  • writeConcern:写入策略,默认为 1,即要求确认写操作,0 是不要求。
  • ordered:指定是否按顺序写入,默认 true,按顺序写入。

示例:

>db.myTest.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'dwTest',
    tags: ['mongodb', 'database', 'NoSQL']
})

以上实例中 myTest 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

 

 3、更新操作

 MongoDB 使用 update() 方法来更新集合中已存在的文档,语法格式如下:

db.collectionName.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似 sql update 查询内 where 后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入。 默认是 false,不插入
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录。如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

 示例:

db.MyTest.update({'title': 'MongoDB 教程'},  {$set:{'title': 'I love MongoDB'}})

 更新 title = 'MongoDB 教程' 的数据, 更新成  title = 'I love MongoDB'。

更新多条:

db.myTest.update({'title':'MongoDB 教程'} ,  {$set:{'title':'I love MongoDB'}},  {multi:true})

 

4、删除操作

 remove() 函数是用来移除集合中的数据。语法格式如下所示:

db.collectionName.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern :(可选)抛出异常的级别。

 示例:

4.1、删除所有满足条件的:

db.col.remove({'title':'MongoDB 教程'})

 

 4.2、删除1条

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

 

4.3、删除所有数据

db.myTest.remove({})

 

 

 

 

 

posted @ 2021-10-18 22:22  邓维-java  阅读(457)  评论(0)    收藏  举报