七叶笔记 » 数据库 » MongoDB教程之数据操作实例

MongoDB教程之数据操作实例

    以上命令将会清除users集合中的所有数据,但是不会删除集合本身以及关联的索引。数据删除操作是不可恢复的,一旦删除就物理的删除了。对于全集合清除这种case,一个更为有效的方式是直接删除集合对象本身以及他关联的所有索引,之后再依次重建,如:     3.  数据更新: 

    如果在执行数据更新时,有多条文档匹配更新条件,为了避免更新后的_id出现重复性冲突,MongoDB将仅更新第一条查询结果,如:  

  4.  修改器:

    使用修改器进行数据更新是原子的,也是高效的,不同于全部文档更新的是被更新文档的_id不会变化,而文档完全更新则会修改文档的_id,以及相关的索引。   

 

5.  数组修改器:

6.  upsert:

    upsert是一种特殊的更新。要是没有文档符合更新条件,就会以这个条件和更新文档为基础创建一个新的文档。如果找到了匹配的文档,则正常更新。    

    下面的示例可以在新增的同时,修改新增后的值。       save是一个shell函数,可以在文档不存在时插入,存在时更新。upsert也可以完成同样的工作,但是不如save命令方便。   7.  返回已更新文档:

    可以通过getLastError命令获取更新多个文档时被更新的文档数量。  

    findAndModify可以原子性的修改查询结果,也可以原子性的删除查询结果。       findAndModify命令中每个键对应的值如下:     findAndModify: 字符串类型的集合名称。     query:查询文档,用来检索文档的条件。     sort: 排序结果的条件。     update:修改文档,对所找到的文档执行的更新。     remove:布尔类型,表示是否删除文档。     new:布尔类型,表示返回的是更新前的文档还是更新后的文档。缺省是更新前文档。     update和remove必须有一个存在,也只能有一个存在。如果没有匹配的文档,该命令会返回一个错误。这个命令有些限制,即一次只能处理一个文档,也不能执行upsert操作,只能更新已有文档。

相关文章