根据Mongoose中的其他属性返回数组值和分组的匹配记录?
Posted
技术标签:
【中文标题】根据Mongoose中的其他属性返回数组值和分组的匹配记录?【英文标题】:return match record of array value and group by other property in Mongoose? 【发布时间】:2020-12-26 17:15:40 【问题描述】:我们正在使用 mongoDB NoSQl 数据库和 NPM 库 Mongoose 和 Nodejs。
我有一个名为“USERS”的集合,文档格式如下:
user_number: 12, region:"Pune",
user_number: 13, region:"Mumbai",
user_number: 14, region:"Mumbai",
user_number: 15, region:"Punjab",
user_number: 16, region:"Delhi",
user_number: 17, region:"Pune"
我有 user_Number=[12,13,14,15]
数组,所以我想返回 user_number 与 group by region 的匹配记录。
user_number 数组是动态的。
预期输出是:
"data":
"_id":
"region": "pune"
,
"count": 1,
"region": "Pune"
,
"_id":
"region": "Mumbai"
,
"count": 2,
"region": "Mumbai"
,
"_id":
"region": "Punjab"
,
"count": 1,
"region": "Punjab"
,
你能请人用最好的方法指导我吗?
提前致谢!
【问题讨论】:
【参考方案1】:您可以在您的 aggeration 管道中使用 $match
和 $group
来执行此操作:
db.collection.aggregate([
"$match":
user_number:
$in: [12,13,14,15]
,
$group:
_id: "$region",
count:
$sum: 1
])
你可以在 mongoplayground 上试试这个:https://mongoplayground.net/p/tXpwtngnU1B
【讨论】:
你能指导我解决这个问题吗:***.com/questions/63918199/… 完成 - 请检查。我在手机上,所以我现在无法测试。以上是关于根据Mongoose中的其他属性返回数组值和分组的匹配记录?的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs mongoose根据对象属性选择嵌套数组中的对象