在一个 MongoDB 文档中获取两个数组中的唯一值
mongodbdatabasebig data analytics更新于 2026/1/6 7:52:17
要获取文档中两个数组中的唯一值,请在 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"
]
}

