将两个字段合并到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"] }
]);

非常感谢你!