更新Mongo文档

时间:2014-04-23 13:49:43

标签: mongodb

我想通过转换此表单中的所有文档来更新集合:

{
"_id" : "somestring i made",
"value" : {
    "a" : 0.42361499999999996,
    "b" : 3,
    "c" : "foo",
    "d" : "bar"
}
}

到此表单(带有新ID' s):

{
"_id" : ObjectId("77d987f6dsf6f76sa7676df"),
"a" : 0.42361499999999996,
"b" : 3,
"c" : "foo",
"d" : "bar"

}

所以基本上从对象中取出字段" value"并将id重置为真实的文档ID。

1 个答案:

答案 0 :(得分:1)

首先获取文档,转换为所需格式,删除旧文档并再次插入修改后的文档。 像

这样的东西
db.collection.find({}).forEach(function(doc){
    var obj = { a : doc.value.a, 
                b : doc.value.b,
                c : doc.value.c,
                d : doc.value.d};
     db.collection.remove(doc);
     db.collection.insert(obj);
});