使用现有数据将字段添加到每个文档(将字段数据移动到新字段)

时间:2019-05-02 23:07:29

标签: mongodb nosql field

我几乎没有SQL或noSQL的经验。

我需要更新每个文档,以便我的字段“ Log *”位于新的字段“ Log”下

我从this StackOverflow那里获得了一些帮助,但我仍然想知道如何移动数据。

非常感谢您

原始文件

// collection: Services { "_id" : ObjectId("5ccb4f99f4953d4894acbe79"), "Name" : "WebAPI", "LogPath" : "Product\\APIService\\", "LogTypeList" : [ { "Name" : "ApiComCounter", "FileName" : "ApiComCounter.log" }, { "Name" : "ApiService", "FileName" : "ApiService.log" } ] }

最终文件

// collection: Services { "_id" : ObjectId("5ccb6fa2ae8f8a5d7037a5dd"), "Name" : "InvoicingService", "Log" : { "LogPath" : "Product\\APIService\\", "LogTypeList" : [ { "Name" : "ApiComCounter", "FileName" : "ApiComCounter.log" }, { "Name" : "ApiService", "FileName" : "ApiService.log" } ] } }

1 个答案:

答案 0 :(得分:0)

这需要 MongoDB 4.2 或更高版本:

db.<collection>.updateMany({}, [
  {$set: {"Log.LogPath": "$LogPath", "Log.LogTypeList": "$LogTypeList"}}, 
  {$unset: ["LogPath", "LogTypeList"]}
])