2013-07-17 10 views
0

在Mongo中,在更改記錄時複製記錄的最佳方法是什麼?MongoDB在更改參數時複製對象

例如,說我有一個用戶對象,我想在更改某些屬性時複製它。 所以(邏輯):

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

當然沒有「複製」功能,但是這就是我在尋找:一種方法來複制文件,同時改變一些屬性(當然關鍵_id) 。

+0

取決於編程語言/框架 - 一般來說,只需再次保存文檔,並使用新的'_id'(或清除它並讓DB處理它)。 – WiredPrairie

回答

0

您不必複製任何東西,例如這會工作得很好:

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

我不太明白你爲什麼會想這樣做,這樣雖然。只需爲新的「Barney」文檔再次插入一個包含所有原始字段的新文檔就更有意義了。