我的模型中有以下结构:
geoLocation: {
latitude: {
type: Number
},
longitude: {
type: Number
}
}
我想将订单更改为:
geoLocation: {
longitude: {
type: Number
},
latitude: {
type: Number
}
}
问题是我有现有数据库,其中数据已存储为:
"geoLocation" : {
"latitude" : 23.0720184,
"longitude" : 72.54213399999999
}
我想改变顺序并希望将它们保存为:
"geoLocation" : {
"longitude" : 72.54213399999999,
"latitude" : 23.0720184
}
我正在使用mongodb的$centerSphere
查询,它需要经度作为第一个参数。我试图改变模型中的顺序,但它不会影响数据库。
我该怎么做?
答案 0 :(得分:0)
有一种方法是使用aggregation。请寻找其他更好的选择。
使用$project和$out我们可以先放置经度,mongodb代码段如下所示
db.collection_name.aggregate([{
$project:{
_id:1,
"project all other fields as shown for _id":1,
// Changing part
"geoLocation.longitude":"$geoLocation.longitude",
"geoLocation.latitude":"geoLocation.latitude"
}},
// Overwriting the same collection with latitude and longitude changed
{$out: "collection_name"}]);