更改参数时MongoDB复制对象

时间:2013-07-17 23:33:20

标签: mongodb insert find

在Mongo中,在更改记录的同时复制记录的最佳方法是什么?

例如说我有一个用户对象,我想在更改某些属性时复制它。 所以(逻辑上):

db.users.find({_id:"Fred"}).forEach( function(r) { db.users.insert(r.copy("_id"="Barney","age":25)) } );

当然没有“复制”功能,但这就是我正在寻找的东西:复制文档的方法,同时改变一些属性(当然是键_id)。

1 个答案:

答案 0 :(得分:0)

您不必复制任何内容,例如,这样可以正常工作:

db.users.
    find( { _id: "Fred" } ).
    forEach( function (r) { 
        r._id = "Barney"; 
        r.age = 25;
        db.so.insert( r );
    } );

我不太明白你为什么要这样做呢。再次为新的“Barney”文档插入包含所有原始字段的新文档更有意义。