我有一个Mongo集合,其对象的结构如下:
{
id: ,
...
events: [{},{},{} ...]
...
runtime: {
field1: Date,
field2: Date,
field3: boolean
}
}
当查询某个路由时,我想获取运行时嵌入对象的field1和field2,并将它们作为条目插入到events数组中。也就是说,events数组的成员看起来像:
{
field1: Date,
field2: Date
}
我该怎么做?我一直在关注push运算符,但我不确定它是否适合这项工作。
答案 0 :(得分:1)
据我了解,您可以按照以下方式执行,
db.col.update( {_id:id}, {$ set: {$ push:{events: { field1:日期, field2:日期 } } } } )
注意强>
您必须使用$ set否则更新操作将导致其他参数被删除。而且你推动了A'到' B'那样,
{$ push:{B:A}} 那么A是,{field1:Date,field2:Date},B是事件。
修改强>
使用此选项可以使用自己的值更新文档。 db.col.find()。snapshot()。forEach(function(ele){ db.col.update( {_id:id}, {$ set: {$ push:{events: { field1:ele.runtime.field1, field2:ele.runtime.field2 } } } }
});