node.js - mongoose 和 mogodb 获取与国家相关的所有国家和用户
问题描述
所以我有一个看起来像这样的帖子数据列表
[{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" } } },
]);
解决方案
$group
$addToSet
db.collection.aggregate([
{
"$group": {
"_id": "$country",
"users": {
"$addToSet": "$user"
}
}
}
])
结果
[
{
"_id": "Mexico",
"users": [
"Kim",
"Darren",
"Joe",
"Bob"
]
},
{
"_id": "USA",
"users": [
"Bob"
]
}
]
推荐阅读
- python - 糖果分发问题 NPTEL。显示一个整数,表示使每个数据包大小相等所需的最小移动次数?
- python - 关键事件停止关闭屏幕?
- c - 如何在 C 中读取 BMP 文件?
- laravel - 你如何映射具有相同索引值的多个 morpmap?
- node.js - 制作 Object.prototype 函数会导致 MongoDB Driver 错误
- php - 在 sum(X) 中使用 X 列的变量
- c++ - 这段代码有问题吗?我无法让它工作。请帮帮我
- c++ - 转换向量
向量 > 理想情况下,在 C++ 中移动 - reactjs - D3 v6刷图
- matplotlib - Seaborn 热图颜色条自定义位置