2017-03-17 45 views
0

我收藏看起來像這樣的值: -插入領域,其中新字段的值相同文檔的另一場

customer_collection: -

{"_id" : "507f191e810c19239de098db", "name" : "John", [other data]} 
{"_id" : "507f191e810c19729de860ea", "name" : "Dave", [other data]} 

我想在此集合的所有文檔中添加兩個字段,暱稱(包含1000萬個文檔);本文檔中這些字段的值設置爲的值,即改變文件應該是這樣的: -

{"_id" : "507f191e810c19239de098db", "name" : "John", "nickname" : "John", "surname" : "John", [other data]} 
{"_id" : "507f191e810c19729de860ea", "name" : "Dave", "nickname" : "Dave", "surname" : "Dave", [other data]} 

我怎樣才能做到這一點?這樣做的最佳策略是什麼?

回答

0

你可以做到這一點與下面

db.customer.find().forEach(function (doc) { 
    doc.nickname = doc.name; 
    doc.surname = doc.name; 
    db.customer.save(doc); 
}); 

代碼如果您正在使用MongoDB的3.4,你可以使用新的$ addFields聚合管道運營商。

+0

我正在使用mongoDB 3.2 –

+0

好吧,那麼你不能使用$ addFields操作符。只要使用我寫的代碼,它就可以工作。 –

相關問題