hier ist mein Dokument:einige Fragen über Mongodb.Aggregate variable
members: [
{
_id: 'id1'
name: 'Jack',
group: 0
},
{
_id: 'id2'
name: 'Rose',
group: 0
},
{
_id: 'id3'
name: 'Tom',
group: 1
}
]
ich alle Mitglieder jemandes Gruppe und die Gesamtzahl aller Mitglieder von MemberID suchen möchten.
Zum Beispiel, wenn ich Eingang id1
, es zurück:
{
count: 3,
members: [
{
_id: 'id1',
name: 'Jack'
},
{
_id: 'id2',
name: 'Rose'
}
]
}
wenn i Eingang id3
, wird es zurück:
{
count: 3,
members: [
{
_id: 'id3',
name: 'Tom'
}
]
}
Ich habe versucht, dies zu tun:
db.collectionName.aggregate({
$project: {
count: {$size: '$members'},
members: 1
}
},
{
$unwind: '$members'
},
{
$project: {
count: 1,
members: {
$cond: [{$eq: ['$members._id', TheInputMemberId]}, '$member', null]
}
}
})
Aber der Filter enthält nur _id
nicht _id
und group
, so ist das Ergebnis immer nur ein Mitglied.
Ich weiß nicht, wie man zuerst die Gruppenvariable bekommt und dann filtert.
Wir freuen uns auf Ihre Antwort! Vielen Dank!
Warum Eingabe ID1 ID2 Mitglied im ersten Beispiel zurückgibt? – Veeram
@Veeram beacuse sie in derselben Gruppe – aweiu