1
と仮定すると、我々は次のようしているデータ mongooseの子ドキュメントフィールドでレコードをグループ化するにはどうすればいいですか?
*親*
{ _id: 10, child: ObjectID(20) }
{ _id: 11, child: ObjectID(21) }
{ _id: 12, child: ObjectID(23) }
*子供たちは*
{ _id: 20, name: 'test-1' }
{ _id: 21, name: 'test-2' }
{ _id: 22, name: 'test-3' }
{ _id: 23, name: 'test-1' }
は、私は、結果、次の取得するために使用するかをマングースを知っているしたいと思います。
{ _id: 'test-1', count: 2}
{ _id: 'test-2', count: 1}
することは私は現在、次のクエリを使用していますが、その結果で_idは常に{ _id: null, count: 3 }
:(
Parent.aggregate([{
$group: {
_id: '$child.name',
count: { $sum: 1 }
}
}])
高く評価され、ヘルプの任意の形である。
:それは以下のように
children
コレクションでその子のIDを使用した後? – Yogesh
はい彼らは異なったコレクションです@Yogesh – emil
この場合、最初に親コレクションに2つの異なるクエリを書く必要があります。すべての子IDを取得し、 '$ match'を使用して' $ match'を子コレクションに使用し、 '$ match'を集計し、' name 'そして最後に' sum' – Yogesh