0
一致する配列要素の数を見つける必要があり、入れ子になった配列に値が含まれていない場合はcount = 0となります。 ここに私のデータエンティティ構造があります。配列内のすべての一致する要素の数を調べる
{
name:A,
issues:[1,2,3,4]
}
{
name:B,
issues:[1,2]
}
{
name:C,
issues:[3,4]
}
issues:[1,2]
のためのユーザーの検索が、私は
[{
name:A,
count:2
}
{
name:B,
count:2
}
{
name:C,
count:0
}]
ように見える私の結果がセットしたい場合、私はこれを達成するために、クエリの下に使用していますが、それは私だけが
[{
name:A,
count:2
}
{
name:B,
count:2
}]
結果を返します間違いなく私がしている$ matchのために知っている
{'$unwind':'$issues'}
,{'$match':{'allissues': {$in: p.issues? p.issues.map(Number):[]}}}
,{ '$group' :{_id:'$_id', name :{ $first: '$name' },count: { $sum: 1 }} }'
これを試すことができます。 db.collection.aggregate([{$ project:{count:{$ size:{$ setIntersection:[p.issues、 "$ issues"]}}}}) ' – Veeram