mongodb - 将一个值添加到mongo集合中的数组的脚本

标签 mongodb

/* 0 */
{
    "_id" : ObjectId("55addc2f8dab32aca87ce0bd"),
    "partNum" : "part1",
    "dest" : "First Part",
    "sales" : [ 
        "sale1", 
        "sale2", 
        "sale3"
    ],
    "salesData" : {
        "sale1" : {
            "mcode" : "mc11",
            "dtype" : [ 
                "AAA", 
                "BBB"
            ]
        }
    }
}

/* 1 */
{
    "_id" : ObjectId("55addc408dab32aca87ce0be"),
    "partNum" : "part2",
    "dest" : "Second Part",
    "sales" : [ 
        "sale1", 
        "sale2", 
        "sale3"
    ],
    "salesData" : {
        "sale1" : {
            "mcode" : "mc22",
            "dtype" : [ 
                "AAA", 
                "BBB"
            ]
        }
    }
}

我写mongo脚本的效率不是很高。我的要求是在集合中所有文档中的“mcode”为“mc11”的任何地方向“dtype”数组追加一个值。以上是我收集的两个文档输出。我正在使用下面的脚本来完成它并且它不起作用。谁能帮帮我

db.testingRD.find().forEach( function(myDocument) 
{
    db.testingRD.update({id: myDocument._id}, {$push : {"salesData.sale1.dtype" : "DDD"}});
});

最佳答案

要在 "mcode""mc11" 的地方向 "dtype" 数组追加一个值,请使用以下 update 其中 query 对象是更新的选择标准,与 find() 方法中的查询选择器相同, update 对象具有要应用的 $push 修改,然后是可选的 options 文档。如果设置为 true,它会更新满足查询条件的多个文档:

var query = { "salesData.sale1.mcode": "mc11" },
    update = {
        "$push": { "salesData.sale1.dtype": "DDD" }
    },
    options = { "multi": true };

db.testingRD.update(query, update, options);

关于mongodb - 将一个值添加到mongo集合中的数组的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532586/

相关文章:

mongodb - 为什么 MongoDB 不同的查询计划显示不同的 nReturned 值?

node.js - 如何设置useMongoClient(Mongoose 4.11.0)?

mongodb - 在 ObjectId 字段上的两个集合之间进行 $lookup 查询

php - Laravel Homestead Mongo 安装导致 PHP 错误 undefined symbol : php_json_serializable_ce in Unknown on line 0

c# - 快速将整个MongoDB集合索引到Elastcticsearch

javascript - 在javascript中按顺序履行 promise

mongodb - openshift 上的 jbossews 日志显示 com.mongodb.CommandFailureException :{ "serverUsed" :"127.xx2.xxx.xx0:27017" ,"ok":0. 0 ,"errmsg":"unauthorized"}

mongodb - 如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符

mongodb - 增加 Mongo BSON 对象的最大大小会导致 Boost 库编译错误

ruby-on-rails - 如何使用 Grape 和 MongoDB 在 Ruby on Rails 中正确测试 'post'(创建)方法