【发布时间】:2019-06-15 00:29:45
【问题描述】:
第一个文档:
{
"_id" : 1,
"array" : [
{
"userID" : 1,
"name" : "name 1"
},
{
"userID" : 2,
"name" : "name 2"
},
{
"userID" : 3,
"name" : "name 3"
},
{
"userID" : 6,
"name" : "name 6"
}
]
}
第二份文件:
{
"_id" : 2,
"array" : [
{
"userID" : 1,
"name" : "name 1"
},
{
"userID" : 2,
"name" : "name 2"
},
{
"userID" : 3,
"name" : "name 3"
},
{
"userID" : 4,
"name" : "name 4"
},
{
"userID" : 5,
"name" : "name 5"
}
]
}
有没有办法得到这样的输出:
{
"array" : [
{
"userID" : 1,
"name" : "name 1"
},
{
"userID" : 2,
"name" : "name 2"
},
{
"userID" : 3,
"name" : "name 3"
}
]
}
我想比较两个文档的数组字段并检索其中的共同元素。并且仅通过常见的'userID' 比较数组字段。我们可以通过$setIntersection 来做吗?我一次只需要检查两个数组字段。
【问题讨论】:
-
总是有 2 个文件吗?这(2个文件)是聚合结果吗?
-
不是聚合结果。我将按document._id取两个文件
-
First Document和Secoend Document你的意思是,这是不同的不同对象吗?还是单个对象的一部分? -
你也可以看看这个答案,stackoverflow.com/questions/30646534/…
-
是的,第一个文档和第二个文档,这是两个不同的对象
标签: mongodb spring-boot aggregation-framework