MongoDB重复项按所有者分组

问题描述 投票:0回答:1

我已经使用mongo几个月了,除了简单的基本查询和聚合操作,我对聚合还不是很熟悉。我来自sql语言..

我有一个与此类似的数据库:

    {
    ownerId: "A",
    email: "[email protected]",
    phone: "333",
    current: true,
    deleted: false
  },
  {
    ownerId: "A",
    email: "[email protected]",
    phone: "444",
    current: true,
    deleted: false
  },
  {
    ownerId: "A",
    email: "[email protected]",
    phone: "555",
    current: true,
    deleted: false
  },
  {
    ownerId: "B",
    email: "[email protected]",
    phone: "333",
    current: true,
    deleted: false
  },
  {
    ownerId: "C",
    email: "[email protected]",
    phone: "333",
    current: true,
    deleted: false
  },
  {
    ownerId: "B",
    email: "[email protected]",
    phone: "333",
    current: true,
    deleted: false
  }

我想获得的结果是:按ownerId分组,我想知道该ownerId是否在其通讯录中具有重复的“电子邮件” OR是否具有重复的“电话”。 X不能有两个或两个以上相同的电子邮件或同一部电话。我正在尝试各种方法,但是我也找不到开始的方法..我想要您的帮助..

https://mongoplayground.net/p/D6X4WTyAIiR

预期输出(基于此示例)类似于以下内容:

[
  {
    ownerId : "A",
    emails: [
      "[email protected]"
    ],
    phones :[]
  }
]

非常感谢!

mongodb mapreduce aggregate
1个回答
0
投票

对于此聚合,请使用:

© www.soinside.com 2019 - 2024. All rights reserved.