MongoDB:如何为集合中的每个文档设置一个新字段,该字段等于另一个字段的值

坦率

我需要运行迁移脚本,以将值(每个文档中已有)插入到同一文档的数组中。必须对集合中的每个文档执行此操作(无需选择查询)

如何更改此:

{
    "_id": ObjectID("5649a7f1184ebc59094bd8b3"),
    "alternativeOrganizer": ObjectID("5649a7f1184ebc59094bd8b1"),
    "myArray": []
}

变成这个:

{
    "_id": ObjectID("5649a7f1184ebc59094bd8b3"),
    "alternativeOrganizer": ObjectID("5649a7f1184ebc59094bd8b3"),
    "myArray": [
         ObjectID("5649a7f1184ebc59094bd8b3")
    ]
}

提前致谢。

观念探索

我将使用forEach$ addToSet,以便脚本可以重新执行。

除非该值已存在,否则$ addToSet运算符会向该数组添加一个值,在这种情况下,$ addToSet对该数组不执行任何操作。

db.collectionname.find().forEach(function(results)
{    
    print( "Id: " + results._id );
    db.collectionname.update( {_id : results._id},
                       {$addToSet : {myArray : results._id}})
});

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为一个对象列表的一个字段与另一个具有公共字段的对象的列表的字段设置值?

如何检查该值至少等于列表中的一个字段?

JSON模式条件:根据另一个字段的值,该字段是必需的

在Elasticsearch中查询一个字段不等于另一个字段

查询一个字段等于另一个数组字段?

添加新字段,它是文档中另一个字段的大小

Laravel根据另一个字段的值来验证该字段

根据另一个字段的值在MongoDB中投影一个字段

如何在django admin中基于另一个字段的查找设置字段值?

查找来自一个字段的值不为null且不在另一个字段中的MongoDB文档

MongoDB使用另一个字段的值添加新字段

MongoDB Aggregate在文档中添加一个新字段(如果已存在另一个字段)

如何在formik中基于另一个字段设置一个字段的输入值?

mongoDB $ set问题,使用文档的键值/另一个字段值

如何获得每个字段(按另一个字段)MongoDB的不同字段计数?

根据文档中的另一个字段更新字段

如何在访问中将表中的一个字段设置为等于表中的另一个字段

选择一个字段的值,其中另一个字段等于rails中的值

Elasticsearch将每个文档的ID更新为文档中另一个字段的值

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

Laravel更新字段,带有另一个字段值

如何读取名称在另一个字段中的行字段的值

java在实例化时设置对象字段等于另一个字段

在 Android MVVM 中更改另一个字段时更新字段

如何查询MongoDB的一个字段值是否以字符串的形式出现在另一个字段值中?

MongoDB 使用另一个集合中的另一个字段更新字段

Mongo 通过将值从一个字段映射到另一个集合中的字段中的值来创建新字段

如何根据另一个字段的值设置输入字段值?

Mongodb 更新文档中的一个字段,然后根据前一个字段的值更新另一个