文件是这样的
{title:"here", lat:123.4512, lng:36.3423, time:"2011-01-02"}
Run Code Online (Sandbox Code Playgroud)
我想要像这样的chane文档
{title:"here", {latlng: {lat:123.4512, lng:36.3423}}, time:"2011-01-02"}
Run Code Online (Sandbox Code Playgroud)
所以我将通过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}});
})
Run Code Online (Sandbox Code Playgroud)
但TT很慢
我认为另一个解决方案
db.coll.find().forEach(function(u){
db.coll.update(u, {{"latlng" : {"lat":u.lat, "lng":u.lng}}, $unset:{"lat":1, "lng":1}});
})
Run Code Online (Sandbox Code Playgroud)
但我无法运行它.因为第一个解决方案仍在运行....
你有这样的快速解决方案吗?
Rem*_*iet 10
您的第二个查询被破坏,因为它将覆盖整个文档,使用$ set:
db.coll.find().forEach(function(u){
db.coll.update(u, {$set:{"latlng" : {"lat":u.lat, "lng":u.lng}}, $unset:{"lat":1, "lng":1}});
})
Run Code Online (Sandbox Code Playgroud)
这至少是原始尝试速度的两倍,因为您需要两次更新同一文档,这是不必要的.
| 归档时间: |
|
| 查看次数: |
5558 次 |
| 最近记录: |