在MongoDB中合并同一集合中的两个文档

时间:2020-08-24 06:35:06

标签: mongodb merge nosql aggregation-framework aggregation

我一直在尝试合并集合中的一些重复文档,这些文档称为“城市”。

请考虑以下内容:

{
    "_id": 1,
    "Name": "Santa Monica",
    "State": "California"
},
{
    "_id": {"$oid":"5ec5fcc993ce00388429278a"},
    "Name": "Santa Monica",
    "State": "California",
    "TimeZone": "UTC−8",
    "Population": 90401,
    "State": "California"
}

第二项确实有更多信息,例如时区和人口。 我只想在一个对象中合并这两个对象,像这样保留第一个_id

{
    "_id": 1
    "Name": "Santa Monica",
    "State": "California",
    "TimeZone": "UTC−8",
    "Population": 90401,
    "State": "California"
}

我知道我必须使用聚合,但不知道如何使用。该文档缺少在同一集合中如何执行此操作的清晰示例。

谢谢。

1 个答案:

答案 0 :(得分:2)

您需要按.push()let arr = [true, true, false, false, false, false, false, true]; let newArr = []; for (let i = 0; i < arr.length; i++) { if (arr[i]) { // roughly the same as if(arr[i] == true) newArr.push(i); } } console.log(newArr);字段对文档进行分组并将其合并。

尝试这个:

Name

MongoPlayground

注意: State允许翻转分组数组