在 mongodb 中将两个键合并为一个键

combine two keys to one key in mongodb

我的mongodbcollection喜欢这样

{id:jdhdhjdhdjfh,
time:2012.12.1,
longitude:121.32,
latitude:32.41}

怎么改成这样

{id:jdhdhjdhdjfh,
time:2012.12.1,
GPS:[121.32,32.41]}

没有直接的方法可以通过一次操作完成。您需要遍历所有集合文档并更新每个文档。

它将是这样的:

db.collection.find().forEach(function(doc){
    db.collection.update(
        {"_id":doc._id},
        {
            "$set":{
                "GPS":[doc.longitude, doc.latitude]
            },
            "$unset" : {longitude : "", latitude : ""}
        }
    );
})

另一种方式:

var a = db.temp.find({_id : "jdhdhjdhdjfh"}, {_id : 0, longitude : 1, latitude : 1})
var obj = {};
obj["GPS"] = [a[0].longitude, a[0].latitude]
db.temp.update( {_id : "jdhdhjdhdjfh"},
{$set : obj, $unset : {longitude : 1, latitude : 1} }
)