• 『MongoDB』集合更新操作


    参考

    定义

    db.collection.update(query, update, options)

    改变一个在集合中已经存在的文档或文档数组。默认的,update()方法更新一个独立的文档。如果multi选项被设置为true(真),这个方法更新匹配条件的所有文档。

    方法格式:

    db.collection.update(
       <query>,
       <update>,
       { upsert: <boolean>, multi: <boolean> }
    )
    
    参数 类型 描述
    query 文档 选择器,与find()中的用法一样。
    update 文档 改变
    upsert 文档、布尔 可选。默认为false。如果为true,则表示“如果文档不存在,则创建集合。”
    multi 文档、布尔 可选。默认为false。如果为true,则表示“更改所有符合条件的项目。”

    update参数说明

    参考

    Name Description
    $inc 通过指定的数值自增长某个字段的值。
    $rename 重命名一个字段
    $setOnInsert 当文档在upsert创建期间,设置一个字段的值。对于已经存在的项目的更新不起作用。
    $set 在一个已经存在的文档的字段值。
    $unset 从一个文档中移除一个字段。

    示例

    db.products.update( { sku: "abc123" },
                        { $inc: { quantity: 5 } } )
    

    增长sky为abc123的文档的quantity字段的值5次。(如:原为1,增长后为6)

    数组操作

    Name Description
    $ 作为一个占位符来更新一次update操作中的第一个符合条件的元素。
    $addToSet 仅当它们在集合中不存在的时候,添加元素到一个已经存在的数组。
    $pop 移除一个数组中第一个或最后一个元素。
    $pullAll 从一个数组中移除所有元素。
    $pull 从一个数组中移除匹配的元素。
    $pushAll 不建议使用. 添加所有元素。
    $push 添加一个元素。

    $push简单说明

    格式

    db.collection.update( <query>,
                          { $push: { <field>: <value> } }
                        )
    

    示例

    db.students.update(
                        { name: "joe" },
                        { $push: { scores: 89 } }
                      )
    

    更改器

    Name Description
    $each $push和$addToSet的更改操作,为一个数组更新多个附加的项目。
    $slice $push的更改操作来限制被更新数组的尺寸。
    $sort $push的更改操作,为一个已经存在的数组排序。
  • 相关阅读:
    bzoj3721
    [BZOJ3555] [Ctsc2014]企鹅QQ(Hash)
    [POJ3233] Matrix Power Series(矩阵快速幂)
    矩阵运算所满足的定律
    [luoguP1962] 斐波那契数列(矩阵快速幂)
    [luoguP3390]【模板】矩阵快速幂
    【转】关于LIS和一类可以用树状数组优化的DP 预备知识
    [BZOJ1264][AHOI2006]基因匹配Match(DP + 树状数组)
    [luoguP1439] 排列LCS问题(DP + 树状数组)
    蛤蛤蛤(树状数组 | 二分)
  • 原文地址:https://www.cnblogs.com/sitemanager/p/3476910.html
Copyright © 2020-2023  润新知