`
san_yun
  • 浏览: 2663158 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mongoDB Update文档

 
阅读更多

MongoDB supports atomic, in-place updates as well as more traditional updates which replace an entire document.

update()

update() replaces the document matching criteria entirely with objNew. If you only want to modify some fields, you should use the $ modifiers below.

Here's the MongoDB shell syntax for update() :

db.collection.update( criteria , objNew , upsert , multi )

Arguments:

  • criteria - query which selects the record to update;
  • objNew - updated object or $ operators (e.g., $inc) which manipulate the object
  • upsert - if this should be an "upsert" operation; that is, if the record(s) do not exist, insert one. Upsert only inserts a single document .
  • multi - indicates if all documents matching criteria should be updated rather than just one. Can be useful with the $ operators below.

save() in the mongo shell

The save() helper method in the mongo shell provides a shorthand syntax to perform an update of a single document with upsert semantics:

 

> // x is some JSON style object
> db.mycollection.save(x); // updates if exists; inserts if new
> 
> // equivalent to:
> db.mycollection.update( { _id: x._id }, x, /*upsert*/ true );
 

Modifier Operations

Modifier operations are highly-efficient and useful when updating existing values; for instance, they're great for incrementing a number.

So, while a conventional implementation does work:

var j=myColl.findOne( { name: "Joe" } );
j.n++;
myColl.save(j);
 

 

a modifier update has the advantages of avoiding the latency involved in querying and returning the object as well as resulting in very little network data transfer. The modifier update is also also atomic (per document that is; on a multi-document update, there is effectively an auto-commit after each individual document update).

You specify any of the special update operators (which always start with a '$' character) with a relevant update document:

db.people.update( { name:"Joe" }, { $inc: { n : 1 } } );

$inc

{ $inc : { field : value } }

 increments field by the number value if field is present in the object, otherwise sets field to the number value . This can also be used to decrement by using a negative value .

$set

{ $set : { field : value } }

 sets field to value . All datatypes are supported with $set .

$push

{ $push : { field : value } }
 

appends value to field , if field is an existing array, otherwise sets field to the array [value ] if field is not present. If field is present but is not an array, an error condition is raised.

Multiple arrays may be updated in one operation by comma separating the field : value pairs:

{ $push : { field : value, field2 : value2 } }

$pop

{ $pop : { field : 1  } }

 removes the last element in an array (ADDED in 1.1)

The $ positional operator

The $ operator (by itself) means "position of the matched array item in the query". Use this to find an array member and then manipulate it. For example:

 

> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",
  "comments" : [ { "by" : "joe", "votes" : 3 }, { "by" : "jane", "votes" : 7 } ] }

> t.update( {'comments.by':'joe'}, {$inc:{'comments.$.votes':1}}, false, true )

> t.find()
{ "_id" : ObjectId("4b97e62bf1d8c7152c9ccb74"), "title" : "ABC",
  "comments" : [ { "by" : "joe", "votes" : 4 }, { "by" : "jane", "votes" : 7 } ] }

 

参考:

http://www.mongodb.org/display/DOCS/Updating#Updating-%24inc

http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update

分享到:
评论

相关推荐

    mongoDB的官方中文文档

    MongoDB是一种流行的开源、分布式文档型数据库,以其灵活性、高性能和易用性而备受开发者青睐。作为NoSQL数据库的一种,它存储数据的方式不同于传统的表结构,而是采用键值对、文档、集合的形式。MongoDB的官方中文...

    MongoDB学习文档.zip

    对于文档的增删改查,Java驱动提供了诸如`insertOne()`、`insertMany()`、`find()`、`findOneAndDelete()`、`updateOne()`等方法。查询可以通过构建`Document`对象和使用` Filters`类来实现,这允许进行复杂的条件...

    PHP操作MONGODB详细文档 WORD版

    MongoDB是一个高性能、开源、无模式的分布式文档型数据库,它以其灵活性和可扩展性受到青睐。而PHP作为服务器端脚本语言,因其易学易用性而广受欢迎,因此将PHP与MongoDB结合,可以构建高效的数据驱动应用。 本文档...

    MongoDB官方文档

    MongoDB作为一款开源的NoSQL文档型数据库,被广泛应用在大数据存储和处理的场景中。它的设计目标是为现代应用提供可扩展、高性能、高可用性的数据存储解决方案。本内容将从多个方面详细介绍MongoDB的相关知识点。 ...

    mongodb3.2.4说明文档

    ### MongoDB 3.2.4 说明文档知识点总结 #### 一、MongoDB简介 **1.1 文档型数据库** MongoDB 是一种基于分布式文件存储的开源文档型数据库系统,设计初衷是为了解决传统关系型数据库在处理大规模非结构化数据时...

    MongoDB安装文档

    1. 使用sudo apt-get update更新软件源,然后sudo apt-get install mongodb-server安装MongoDB。 2. 配置MongoDB服务,编辑/etc/mongod.conf文件,根据需求调整存储路径、端口等设置。 3. 启动MongoDB服务,使用命令...

    MongoDB基础教学文档

    2. **集合与文档**:在MongoDB中,数据被组织成集合(类似于关系数据库中的表),而集合由一系列文档组成。每个文档都是一个键值对的集合,这些键值对定义了数据的结构。 3. **CRUD操作**:MongoDB提供了创建...

    mongodb编译文档及编译结果.7z

    MongoDB是一种流行的开源文档型数据库,它以JSON格式存储数据,具有高性能、高可用性和可扩展性。在C++环境中,开发人员可以使用MongoDB的C++驱动程序来与数据库进行交互,实现数据的存取操作。本编译文档将详细介绍...

    MongoDB 安装文档

    - **改 (Update)**: 更新文档。 ```javascript // 修改整个文档 db.stu.update({sn: '001'}, {sn: '0001'}); // 修改文档中的某一列 db.stu.update({sn: '001'}, {$set: {sn: '002'}}); ``` #### CentOS 下 ...

    Spring Data MongoDB : Update document

    **Spring Data MongoDB: 更新文档** 在现代Web应用开发中,数据存储是至关重要的部分,而MongoDB作为NoSQL数据库中的代表,因其灵活性和高性能而受到广泛欢迎。Spring Data MongoDB是Spring框架的一个模块,它简化...

    mongodb update操作符ppt

    在这个名为“mongodb update操作符ppt”的文档中,我们很可能会深入探讨MongoDB数据库中用于更新数据的核心操作符。 在MongoDB中,更新操作是数据管理的关键部分,它们允许我们修改现有文档的内容。以下是一些关键...

    mongodb使用文档集

    7. `db.collection.updateOne({query}, {update})`:更新满足条件的第一条文档。 8. `db.collection.deleteOne({query})`:删除满足条件的第一条文档。 9. `db.runCommand({command: "command_name", options})`:...

    MongoDB快速入门笔记(六)之MongoDB的文档修改操作

    在MongoDB中,对文档的修改操作是通过`update`方法来实现的。这个方法接收四个参数: 1. `query`:这是一个过滤条件,用于指定要修改哪些文档。例如,`{_id:1}`会匹配_id字段为1的文档。 2. `update`:这是更新操作...

    mongodb操作文档.doc

    - `db.collectionName.update(query, updateDocument, upsert, multi)`,其中query是查询条件,updateDocument是更新内容,upsert参数表示如果没有匹配的文档是否插入,默认为false,multi表示是否更新所有匹配的...

    MongoDB更新文档.pdf

    本文将介绍 MongoDB 中更新文档的相关操作,包括 update() 方法、参数说明、参数和部分操作符的应用方法。 一、update() 方法 update() 方法用于更新已存在的文档。语法格式如下: db.collection.update( , ...

    ​MongoDB指南文档

    ### MongoDB指南文档知识点详解 #### 一、MongoDB基本概念 **SQL术语/概念 VS MongoDB术语/概念** | SQL术语/概念 | MongoDB术语/概念 | 解释/说明 | |---|---|---| | database | database | 数据库,用于存储一...

    MongoDB API文档.zip

    本压缩包“MongoDB API文档.zip”包含了关于MongoDB API的详细文档,特别关注的是与Java语言相关的API使用。以下是MongoDB API在Java开发中的核心知识点: 1. **MongoClient**: MongoDB Java驱动程序的入口点,用于...

    很全的_Mongodb数据库学习文档_与_php操作mongodb

    - **执行CRUD操作**:利用MongoDB提供的丰富的API,开发者可以轻松实现数据的增删改查操作,如`insertOne()`, `findOne()`, `updateOne()`, `deleteOne()`等方法。 - **查询优化与索引管理**:为了提高查询效率,...

    Java操作mongoDB使用文档.docx(16页.docx

    在本文档中,我们将探讨如何使用Java驱动程序进行基本的MongoDB操作,包括连接、添加、更新、查询和删除数据。 首先,开始之前,确保你已经安装了MongoDB服务器并在本地或远程运行(例如localhost:27017),并且在...

    mongodb学习手册.pdf

    MongoDB提供了丰富的命令集,支持基本的CRUD操作,包括插入(insert)、查询(query)、删除(remove)和更新(update),满足日常数据库管理需求。 #### 十一、Shell控制台 MongoDB的Shell控制台是一个强大的交互式工具,...

Global site tag (gtag.js) - Google Analytics