资讯专栏INFORMATION COLUMN

创建、更新、删除文档

defcon / 1652人阅读

摘要:插入并保存文档示例批量插入书中的的方法是错误的,没有这个方法,提供的是或者。每一组操作至多包含个操作,如果超出了这个限制,将划分成或者更少的组。这个限制未来可能会调整。示例默认,执行的是顺序的插入。删除文档书中的没有加,这样写是错误的。

1、插入并保存文档
db.collection.insertOne()    Inserts a single document into a collection.
db.collection.insertMany()    db.collection.insertMany() inserts multiple documents into a collection.
db.collection.insert()    db.collection.insert() inserts a single document or multiple documents into a collection.

示例:

db.products.insertOne( { item: "card", qty: 15 } );
批量插入

书中的29的batchInsert方法是错误的,没有这个方法,提供的是insertMany或者insert。

db.collection.insertMany(
   [  , , ... ],
   {
      writeConcern: ,
      ordered: 
   }
)

每一组操作至多包含1000个操作,如果超出了这个限制,mongodb将划分成1000或者更少的组。这个限制未来可能会调整。ordered默认是true的,在一个分片的集合中,会比unordered慢,因为它是按照队列操作的。

示例:

 db.products.insertMany( [
      { _id: 10, item: "large box", qty: 20 },
      { _id: 11, item: "small box", qty: 55 },
      { _id: 12, item: "medium box", qty: 30 }
   ] );

db.products.insert(
   [
     { _id: 20, item: "lamp", qty: 50, type: "desk" },
     { _id: 21, item: "lamp", qty: 20, type: "floor" },
     { _id: 22, item: "bulk", qty: 100 }
   ],
   { ordered: false }
)

NOTE:
默认,mongodb执行的是顺序的插入。如果顺序插入的时候,在一个插入发生错误之后,后续的插入将不再执行;如果是无需的插入,那么发生错误之后,后续的插入还将继续执行。在执行完step1之后,step2执行的结果跟step3是不同的,step3中会插入30,但是step2终不会。

step1:db.foo.insertMany([{"_id":1},{"_id":2},{"_id":3}]);
step2:db.foo.insertMany([{"_id":10},{"_id":2},{"_id":30}]);
step3:db.foo.insertMany([{"_id":10},{"_id":2},{"_id":30}],{ ordered: false});
2、删除文档

书中的remove没有加{},这样写是错误的。
这本书太久了,现在的好多用法都变了,坑爹,只拿这本书的目录学习,以后的所有的内容都按以官方文档为准
官方文档如下:

To remove all documents in a collection, call the remove method with an empty query document {}
db.collection.remove(
   ,
   
)

示例如下:

db.bios.remove( { } )
db.products.remove( { qty: { $gt: 20 } }, true )

NOTE:
justOne,默认是false,会删除匹配的所有记录,如果只删除一个则设定为true

从一个集合中删除所有的文档,更有效率的方法是用drop()方法删除整个集合,包括索引,然后在重建整个集合和重建索引

3、更新文档
db.collection.update(
   ,
   ,
   {
     upsert: ,
     multi: ,
     writeConcern: ,
     collation: 
   }
)

update()默认只能更新一个文档,对于整个文档的更新,update操作只能更新一个,multi的选项是针对$操作符multi update only works with $ operators

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/18974.html

相关文章

  • MongoDB(三):创建更新删除文档

    摘要:排序结果的条件修改器条件,用户对匹配的文档进行更新和必须指定一个布尔类型,表示是否删除文档和必须指定一个布尔类型,表示返回更新前的文档还是更新后的文档,默认是更新前的文档。 本文所有内容以MongoDB 3.2 为基础。 插入并保存文档 插入是添加数据的基本方法。可以使用insert插入一个文档: db.foo.insert({bar: baz}) 批量插入 使用批量插入,可以加快插入...

    zorro 评论0 收藏0
  • MongoDB权威指南读书笔记(一)

    摘要:如果没有找到找到符合条件的文档,就会以这个条件和更新文档为基础新建一个新的文档。使用它可以快速方便的对文档进行更新。更新多个文档默认情况下,文档的更新只针对第一个匹配到的文档,多个条件符合时,其它文档不会改变。 what is MongoDB ? 面向文档的数据库 不再有行的概念,不再有预定义模式 易于拓展 丰富的功能 索引 聚合 特殊的集合类型 文件存储 高性能 可以一个示...

    Barrior 评论0 收藏0
  • MongoDB权威指南读书笔记(一)

    摘要:如果没有找到找到符合条件的文档,就会以这个条件和更新文档为基础新建一个新的文档。使用它可以快速方便的对文档进行更新。更新多个文档默认情况下,文档的更新只针对第一个匹配到的文档,多个条件符合时,其它文档不会改变。 what is MongoDB ? 面向文档的数据库 不再有行的概念,不再有预定义模式 易于拓展 丰富的功能 索引 聚合 特殊的集合类型 文件存储 高性能 可以一个示...

    sixleaves 评论0 收藏0
  • MongoDB入门

    摘要:一个数据集中只能创建一个全文索引。圆形,使用表示。的提高会导致的提高导致明显的性能问题。 mongo数据模型 文档与集合 文档是mongo的核心概念,本质是是一种BSON(Binary JSON)数据,BSON是一种类JSON的二进制数据,可以在为JSON基础上添加了一些新的数据类型,包括日期、Int32、Int64,常被作为数据存储和网络数据交换的格式,缺点是空间利用率并不理想(存在...

    call_me_R 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<