将两个字段合并到mongodb中的新对象字段中
我正在使用以下代码:将两个字段合并到mongodb中的新对象字段中,mongodb,mongodb-query,Mongodb,Mongodb Query,我正在使用以下代码: db.collection.updateMany({},[{ $set: {points: [ "$latitude", "$longitude" ] } }, { $unset: [ "longitude", "latitude" ] }]) 要基于纬度/经度值创建点字段,但我需要在每个值上都有一个“标签”,因此当我搜索时,它会显示如下内容: "points": { [
db.collection.updateMany({},[{ $set: {points: [ "$latitude", "$longitude" ] } },
{ $unset: [ "longitude", "latitude" ] }])
要基于纬度/经度值创建点字段,但我需要在每个值上都有一个“标签”,因此当我搜索时,它会显示如下内容:
"points":
{
[
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
}
有什么想法吗?如果我理解正确,您的文档如下所示:
[
{
"_id" : 123,
"latitude": -3.724404,
"longitude": -38.557694
},
{
"_id" : 456,
"latitude": -3.724404,
"longitude": -38.557694
}
]
[
{
"_id": 123,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
},
{
"_id": 456,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
}
]
"points": {
"latitude": -3.724404,
"longitude": -38.557694
}
您可以使用以下查询:
db.collection.updateMany({}, [
{
$set: {
points: [
{
latitude: "$latitude",
longitude: "$longitude"
}
]
}
},
{ $unset: ["longitude", "latitude"] }
]);
要得到这样的东西:
[
{
"_id" : 123,
"latitude": -3.724404,
"longitude": -38.557694
},
{
"_id" : 456,
"latitude": -3.724404,
"longitude": -38.557694
}
]
[
{
"_id": 123,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
},
{
"_id": 456,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
}
]
"points": {
"latitude": -3.724404,
"longitude": -38.557694
}
但是为什么需要点
作为数组,它可以是这样的对象:
[
{
"_id" : 123,
"latitude": -3.724404,
"longitude": -38.557694
},
{
"_id" : 456,
"latitude": -3.724404,
"longitude": -38.557694
}
]
[
{
"_id": 123,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
},
{
"_id": 456,
"points": [
{
"latitude": -3.724404,
"longitude": -38.557694
}
]
}
]
"points": {
"latitude": -3.724404,
"longitude": -38.557694
}
使用几乎相同的查询获取它:
db.collection.updateMany({}, [
{
$set: {
points:
{
latitude: "$latitude",
longitude: "$longitude"
}
}
},
{ $unset: ["longitude", "latitude"] }
]);
非常感谢你!