1
Gruppierung Ich verwende mongodb mit der Kollektion ProbeMongoDB erhalten verschiedene Artikel nach
{
"_id" : ObjectId("5703750ca9c436386c4814c9"),
"user_id" : NumberLong(17),
"activitytype_id" : NumberLong(1),
"created_date" : ISODate("2015-10-03T03:52:03.000Z")
},
{
"_id" : ObjectId("5703750ca9c436386c4814ca"),
"s_id" : NumberLong(132919),
"user_id" : NumberLong(17),
"activitytype_id" : NumberLong(4),
"created_date" : ISODate("2016-03-18T17:13:43.000Z")
},
{
"_id" : ObjectId("5703750ca9c436386c4814cb"),
"s_id" : NumberLong(215283),
"user_id" : NumberLong(17),
"activitytype_id" : NumberLong(4),
"created_date" : ISODate("2015-10-03T04:12:33.000Z")
}
,
{
"_id" : ObjectId("5703750ca9c436386c4814cc"),
"s_id" : NumberLong(360888),
"user_id" : NumberLong(17),
"activitytype_id" : NumberLong(4),
"created_date" : ISODate("2015-10-03T04:12:41.000Z")
}
Dies ist meine Aggregation Pipeline
db.activitylogs.aggregate([
{ $group: {
_id: {
user_id: "$user_id",
activitytype_id: "$activitytype_id"
},
activity_log_docs: {
$addToSet: {
s_id: "$s_id",
friend_id: "$friend_id",
playlist_id: "$playlist_id",
created_date:"$created_date"
}
}
}},
])
ich verschiedene s_id
in activity_log_docs
bekommen müssen.
hier ist ein Screenshot für das Ergebnis, screen shot for the result
ich brauche duplizierten s_id in activity_log_docs Array zu vermeiden, so dass ich wie diese deutliche s_id
hast du irgendwas probiert? – Burki
Was ist Ihre erwartete Ausgabe? – styvane
Da Sie bei bestimmten Schlüsseln gruppieren, ist der Inhalt des anderen Dokuments wirklich "ungültig", da es natürlich "mehrere Werte" für diese anderen Schlüssel gibt. Verwenden Sie Operatoren wie ['$ first '] (https://docs.mongodb.org/manual/reference/operator/aggregation/first/), um stattdessen" eins "der Werte pro Schlüssel zu erhalten. –