gpt4 book ai didi

mongodb - 如何在 MongoDB 中快速更改字段或更新?

转载 作者:IT老高 更新时间:2023-10-28 13:33:34 25 4
gpt4 key购买 nike

文件是这个

{title:"here", lat:123.4512, lng:36.3423, time:"2011-01-02"}

我想要这样的文档

{title:"here", {latlng: {lat:123.4512, lng:36.3423}}, time:"2011-01-02"}

所以我会通过 mongodb 控制台试试这个。

db.coll.find().forEach(function(u){
u.latlng = {"lat":u.lat, "lng":u.lng};
db.coll.save(u);
db.coll.update(u, {$unset:{"map_x1":1, "map_y1":1}});
})

但是很慢T.T

我认为另一种解决方案

db.coll.find().forEach(function(u){
db.coll.update(u, {{"latlng" : {"lat":u.lat, "lng":u.lng}}, $unset:{"lat":1, "lng":1}});
})

但我无法运行它。因为第一个解决方案仍在运行....

你有像这个工作一样的快速解决方案吗?

最佳答案

您的第二个查询已损坏,因为它会覆盖整个文档,请使用 $set :

db.coll.find().forEach(function(u){
db.coll.update(u, {$set:{"latlng" : {"lat":u.lat, "lng":u.lng}}, $unset:{"lat":1, "lng":1}});
})

这将至少比您最初尝试的速度快两倍,因为您将同一个文档更新两次,这是不必要的。

关于mongodb - 如何在 MongoDB 中快速更改字段或更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com