bekommen insgesamt von sub-Dokumenten in einer Sammlung
Wie bekomme ich die gesamten Kommentare in der Sammlung, wenn meine Sammlung sieht wie folgt aus. (nicht die Summe der Kommentare pro post, sondern insgesamt für die Sammlung.)
{
_id: 1,
post: 'content',
comments: [
{
name: '',
comment: ''
}
]
}
Wenn ich Ein post mit 3 Kommentaren und post B mit 5 Kommentaren. Das Ergebnis sollte 8.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die aggregation framework:
In einer nussschale diese (vorübergehend) erstellt ein separates Dokument für jeden Kommentar und dann Schritten
count
für jedes Dokument.Für eine große Anzahl von Beiträgen und Kommentaren ist es könnte effizienter zu verfolgen die Anzahl der Kommentare. Immer wenn ein Kommentar Hinzugefügt wird, ist es auch Inkrementieren eines Zählers. Beispiel:
Mithilfe der aggregation-framework wieder:
Können Sie die
aggregate
Methode der aggregation framework für die:UPDATE
Als von MongoDB 2.6, es ist ein effizienter Weg dies zu tun ist durch die Verwendung der
$size
aggregation operator, um direkt die Anzahl der Kommentare in jedem doc: