fra*_*hez 3 mongodb mongodb-query
我需要运行一个迁移脚本,将一个值(已在每个文档中可用)插入到同一文档的数组中.必须为我的集合中的每个文档执行此操作(无需选择查询)
如何改变这个:
{
"_id": ObjectID("5649a7f1184ebc59094bd8b3"),
"alternativeOrganizer": ObjectID("5649a7f1184ebc59094bd8b1"),
"myArray": []
}
Run Code Online (Sandbox Code Playgroud)
进入:
{
"_id": ObjectID("5649a7f1184ebc59094bd8b3"),
"alternativeOrganizer": ObjectID("5649a7f1184ebc59094bd8b3"),
"myArray": [
ObjectID("5649a7f1184ebc59094bd8b3")
]
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我会使用forEach和$ addToSet,以便脚本可以重新执行.
$ addToSet运算符向数组添加一个值,除非该值已经存在,在这种情况下$ addToSet对该数组不执行任何操作.
db.collectionname.find().forEach(function(results)
{
print( "Id: " + results._id );
db.collectionname.update( {_id : results._id},
{$addToSet : {myArray : results._id}})
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9911 次 |
| 最近记录: |