2017-03-17 75 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操作符。只要使用我写的代码,它就可以工作。 –

相关问题