5
ドキュメントは、私はので、私はMongoDBのコンソールでこれをしようとします。このMongoDBでフィールドを変更したり、高速に更新する方法は?
{title:"here", {latlng: {lat:123.4512, lng:36.3423}}, time:"2011-01-02"}
ようchaneドキュメントをしたい、この
{title:"here", lat:123.4512, lng:36.3423, time:"2011-01-02"}
です。
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}});
})
と思うが、私はそれを実行することはできません。最初の解決策がまだ実行されているためです。
この仕事のような速い解決策はありますか?
mongoはどのようにこのようなコマンドを処理しますか?私はいくつかの怠惰な評価をし、コレクションの1回のスキャンでドキュメントを更新すると思いますか?または、ドキュメントを再度検索して更新する必要がありますか? 2番目の方法は、コレクション全体を更新するために0(n^2)の複雑さが必要なので、何が起こっていないことを願っています。しかし、これに関する公式の文書はありますか? – Savvas