在一个 MongoDB 文档中获取两个数组中的唯一值


要获取文档中两个数组中的唯一值,请在 aggregate() 中使用 $setUnion。 $setUnion 接受两个或更多数组并返回一个包含出现在任何输入数组中的元素的数组。

让我们创建一个包含文档的集合 -

>db.demo608.insertOne({"ListOfName1":["John","Chris","Bob","David"],"ListOfName2":["Bob", "Sam","John","Robert","Chris"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e974542f57d0dc0b182d62b")
}

在 find() 方法的帮助下,从集合中显示所有文档 -

> db.demo608.find().pretty();

这将产生以下输出 -

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "ListOfName1" : [
      "John",
      "Chris",
      "Bob",
      "David"
   ],
   "ListOfName2" : [
      "Bob",
      "Sam",
      "John",
      "Robert",
      "Chris"
   ]
}

以下是获取一个 MongoDB 文档中两个数组中唯一值的查询 -

> db.demo608.aggregate([
...    {$project:{SetOfNames:{$setUnion:['$ListOfName1','$ListOfName2']}}}
... ]).pretty();

这将产生以下输出 -

{
   "_id" : ObjectId("5e974542f57d0dc0b182d62b"),
   "SetOfNames" : [
      "Bob",
      "Chris",
      "David",
      "John",
      "Robert",
      "Sam"
   ]
}

更新于: 15-5-2020

2K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告