1

目前,我在 MongoDB 数据库中的不同字段中有我的纬度/经度,但如果我想进行地理空间搜索,我需要采用这种格式:

{ location : [ 50 , 30 ] } 

如上所述,我可以通过什么方式将我的 lat/long 键的值转换为每个文档的新键?

蒂亚!

4

1 回答 1

1

您将不得不遍历所有没有location字段的文档并添加它(大概删除纬度/经度字段,除非这会破坏您的应用程序)。

db.mycollection.find( { location : { $exists : false } } ).forEach(
    function (doc) {
        // Add (lon, lat) pairs .. order is important
        doc.location = { lon: doc.lon, lat: doc.lat };

        // Remove old properties
        delete doc.lon;
        delete doc.lat;

        // Save the updated document
        db.mycollection.save(doc);
    }
)

请注意,MongoDB地理空间索引的顺序在您的文档中应与(经度、纬度)一致。

于 2012-07-31T04:14:40.887 回答