所以我有一個看起來像這樣的帖子資料串列
[{user: 'Bob', country: 'USA'}
{user: 'Kim', country: 'Mexico'}
{user: 'Darren', country: 'Mexico'}
{user: 'Joe', country: 'Mexico'}]
etc....
我希望我的資料像
[{Mexico: {'Kim', 'Darren', 'Joe'}, USA: {'Bob'}}]
這是我到目前為止所得到的,但我對檔案有點困惑,而且這里的帖子已經過時了。任何幫助將不勝感激。
Post.aggregate([
{ $group: { _id: "$country", users: { $in: "$posts" } } },
]);
uj5u.com熱心網友回復:
$group $addToSet
db.collection.aggregate([
{
"$group": {
"_id": "$country",
"users": {
"$addToSet": "$user"
}
}
}
])
結果
[
{
"_id": "Mexico",
"users": [
"Kim",
"Darren",
"Joe",
"Bob"
]
},
{
"_id": "USA",
"users": [
"Bob"
]
}
]
mongoplayground
uj5u.com熱心網友回復:
你快要答案了。您需要欄位到.$push userusers
db.collection.aggregate({
$group: {
_id: "$country",
users: {
$push: "$user"
}
}
})
示例 Mongo Playground ( $push)
使用$addToSet增加價值陣列不重復。
$addToSet 運算子向陣列添加一個值,除非該值已經存在,在這種情況下 $addToSet 對該陣列沒有任何作用。
db.collection.aggregate({
$group: {
_id: "$country",
users: {
$addToSet: "$user"
}
}
})
示例 Mongo Playground ( $addToSet)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/335605.html
