Meine Dokumente wie folgt aussehen:Wie funktioniert das mit COUNT in MongoDB?
{
"_id": ObjectId("5698fcb5585b2de0120eba31"),
"id": "26125242313",
"parent_id": "26125241841",
"link_id": "10024080",
"name": "26125242313",
"author": "gigaquack",
"body": "blogging = creative writing",
"subreddit_id": "6",
"subreddit": "reddit.com",
"score": "27",
"created_utc": "2007-10-22 18:39:31"
}
Was ich versuche, ist eine Abfrage zu tun erstellen, die Benutzer, die nur 1 subreddit geschrieben findet. Ich tat dies in SQL, indem Sie die Abfrage mit:
Select distinct author, subreddit from reddit group by author having count(*) = 1;
Ich versuche, etwas ähnliches in MongoDB zu tun, aber einige Probleme atm haben. Ich habe es geschafft, Select distinct neu zu erstellen, indem ich eine Aggregatgruppe verwende, aber ich kann nicht herausfinden, wie man den HAVING COUNT Teil löst. Diese
ist das, was meine Frage wie folgt aussieht:
db.collection.aggregate(
[{"$group":
{ "_id": { author: "$author", subreddit: "$subreddit" } } },
{$match:{count:1}} // This part is not working
])
Bin ich $ passen falsch verwenden?
db.collection.aggregate([{
'$group': {
'_id': {'author': '$author', 'subreddit': '$subreddit'},
'count': {'$sum': 1},
'data': {'$addToSet': '$$ROOT'}}
}, {
'$match': {
'count': {'$eq': 1}
}}])
Wo Daten ist eine Länge Liste mit passendem Dokument:
das gibt alle Informationen zurück, aber ich möchte nur den Namen des Autors. Wie kann ich das machen? – user4742549