我有一个拥有成千上万的“记录”的mongodb集合,例如:
{ "_id" : ObjectId("50ad4f686579e337e1ec2294"), "place" : "Portugal", "lat" : 41.8343, "lon" : -8.3342 }
如何更新所有集合“记录”,将lat和lon放在一个名为location的新字段中,如下所示:
{ "_id" : ObjectId("50ad4f686579e337e1ec2294"), "place" : "Portugal", "location": {"lat" : 41.8343, "lon" : -8.3342 } }
此致 FAK
答案 0 :(得分:1)
基本上你不能只使用更新。
您必须遍历所有文档并进行适当更新:
db.coll.find().forEach(
function (doc) {
doc.location = { lat: doc.lat, lon: doc.lon };
delete doc.lat;
delete doc.lon;
db.coll.save(doc);
}
)
另一种选择可以是以编程方式执行此操作。浏览每个文件。使用您选择的编程语言复制它,并以您希望的方式更新每个文档
当你要求某人帮忙时,请确保你没有错误。确保你的起始代码没有错误。我花了很长时间才发现失踪“