如何在MongoDB更新中将字段的值推入同一文档的另一个数组字段中

杰伊·索吉特拉

我有一个mongodb对象,如下所示:

{
    "_id" : ObjectId("5e54934b2dfddc1826223bbb"),
    "sellProducts" : {
        "products" : []
    },
    "sellServices" : {
        "services" : []
    },
    "categories" : [],
    "status" : "Published",
    "tags" : [],
    "dateRange" : [],
    "membershipRequired" : false,
    "usersAttending" : [],
    "cities" : [],
    "companies" : [ 
        ObjectId("5db1c84ec10c45224c4b95fd"),
    ],
    "companyId" : ObjectId("5db1c84ec10c45224c4b95fd"),
    "jobProfile" : [ 
        ObjectId("5e549339a3ad20c97b7b0c7d")
    ],
    "fundingBy" : []
}

现在,我想通过将companyId字段的值推公司数组来更新相同的记录我怎样才能做到这一点?

我在下面的查询中尝试了一下,但没有成功:

db.getCollection('posts').update({_id: ObjectId("5e54934b2dfddc1826223bbb")},
    {
        $push: 
            {
                companies: "$$companyId"
            }
    })
谁-假面真灵魂

当您使用MongoDB版本时4.2,您可以在其中实际运行更新中的聚合管道,请尝试以下查询:

/** As `$push` doesn't work in aggregation as update operator
 * You can use `$addFields` or `$set` to re-create 'companies' field by merging 'companies' array with array converted 'companyId' field
 * which would leave 'companies' as an array with existing elements + companyId */

db.getCollection('posts').updateOne({_id: ObjectId("5e54934b2dfddc1826223bbb")},
         [{$addFields : {companies: {$concatArrays: ['$companies',['$companyId']]}}}])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用PDFBox的创建一个链接,我可以点击进入另一个页面同一文档中

如何检查一个数组字段在MongoDB中是否包含唯一值或另一个数组?

在猫鼬模式中创建一个字段,该字段引用同一文档中的其他字段

使用字段值更新同一文档中的另一个字段

如何在mongo中匹配来自同一文档的字段值?

在Mongoose的同一文档中查询3个不同嵌套数组中的字段?

在Firestore交易中更新同一文档的多个字段时的定价

通过ID将对象以原子方式从一个数组移动到同一文档中的另一个数组

如何在Mongodb中通过仲裁计算同一文档中两个数组的元素频率

如何在mongodb中的另一个文档中过滤文档的字段?

如何在angularjs中将数组推入另一个数组

如何在mongo中检查同一文档中的两个值?

在每个文档中添加一个新字段,并在mongodb中为同一文档的另一个字段赋值

同一文档中3个字段的平均值

使用聚合将文档的一个字段与同一文档的数组大小进行匹配

如何基于同一文档的另一个属性创建一个属性?

MongoDB-如何验证同一文档的另一个嵌套数组项中是否包含嵌套数组项?

MongoDB:更新同一文档的嵌套元素中的字段

如何连接同一文档中的数组?

比较同一文档中的两个数组字段

如何在 ElasticSearch 中比较同一文档中的两个字段?

在 Firestore 中更新同一文档的 10 个不同字段。顺序重要吗?

使用同一文档中的字段减少 mongodb 中的字段

如何将特定字段的值分配给 Firestore Swift 中同一文档内的另一个字段?

如何在同一文档中检查 6 个值中的任意 3 个

如何将一个数组字段的长度添加到Mongodb文档中的另一个字段中

在一个数组中合并两个对象,一个对象的键嵌套在 Mongo DB 的同一文档中比另一个更深

更新猫鼬文档中另一个数组内的数组中的字段

用同一文档中数组的第一个元素替换字段值