Mongodb monodb是否可以使用$in、多输入和固定条件以及分组结果之类的输出来实现这一点
有一个名为Mongodb monodb是否可以使用$in、多输入和固定条件以及分组结果之类的输出来实现这一点,mongodb,Mongodb,有一个名为组成员的同事: { "_id" : ObjectId("5f817d142689512ef0bd3bd7"), "uid" : NumberInt(1), "group_id" : "g1" } { "_id" : ObjectId("5f817d142689512ef0bd3bd8"), &quo
组成员的同事
:
{
"_id" : ObjectId("5f817d142689512ef0bd3bd7"),
"uid" : NumberInt(1),
"group_id" : "g1"
}
{
"_id" : ObjectId("5f817d142689512ef0bd3bd8"),
"uid" : NumberInt(1),
"group_id" : "g2"
}
{
"_id" : ObjectId("5f817d142689512ef0bd3bd9"),
"uid" : NumberInt(2),
"group_id" : "g2"
}
{
"_id" : ObjectId("5f817d142689512ef0bd3bd1"),
"uid" : NumberInt(2),
"group_id" : "g3"
}
我希望在单个查询中得到这样的结果,map的键是input uid:
{1:["g1","g2"], 2:["g2","g3"]}
输入是uid数组,如下所示:[1,2]
,组id的条件是固定的,如下所示:[“g1”、“g2”、“g3”]
=================================
单个查询可以做到这一点吗?我想要的结果是uid 1在组id数组中:[“g1”、“g2”],uid 2在组id数组中:[“g2”、“g3”]等等,比如
$unwind
输入[1,2],并且每个输入项在组id数组中使用$,[“g1”、“g2”、“g3”]
,然后组我想要的结果是uid 1在组id数组中:[“g1”、“g2”,uid 2在组id数组中:[“g2”、“g3”等,如$unwind
input[1,2],每个输入项在组id数组中使用$:[“g1”、“g2”、“g3”]
,然后是组
db.test.aggregate(
[
{ $match: {"uid":{$in:[1,2]}, "group_id":{$in: ["g1","g2","g3"]}}},
{ $group : { _id : "$uid", group_id : {$push: '$group_id' }}},
]
)