在 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} }
)
我的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} }
)