Node.js 是否按Mongoose中的其他属性返回数组值和组的匹配记录?
我们正在使用带有NPM库的mongoDBNoSQl数据库Mongoose和Nodejs 我有一个名为“用户”的集合,文档格式如下:Node.js 是否按Mongoose中的其他属性返回数组值和组的匹配记录?,node.js,mongodb,express,mongoose,aggregation-framework,Node.js,Mongodb,Express,Mongoose,Aggregation Framework,我们正在使用带有NPM库的mongoDBNoSQl数据库Mongoose和Nodejs 我有一个名为“用户”的集合,文档格式如下: {user_number: 12, region:"Pune"}, {user_number: 13, region:"Mumbai"}, {user_number: 14, region:"Mumbai"}, {user_number: 15, region:"Punjab"}, {u
{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\u Number=[12,13,14,15]
数组,因此我想返回user\u Number与按区域分组的匹配记录。
用户编号数组是动态的
预期产出为:
{"data":{
{
"_id": {
"region": "pune"
},
"count": 1,
"region": "Pune"
},
{
"_id": {
"region": "Mumbai"
},
"count": 2,
"region": "Mumbai"
},
{
"_id": {
"region": "Punjab"
},
"count": 1,
"region": "Punjab"
},
}
}
你能找个人给我介绍一下最好的方法吗
提前谢谢 您可以在聚合管道中使用
$match
和$group
来执行此操作:
db.collection.aggregate([
{
"$match": {
user_number: {
$in: [12,13,14,15]
}
}
},
{
$group: {
_id: "$region",
count: {
$sum: 1
}
}
}
])
您可以在mongoplayground上尝试此功能:您可以指导我解决此问题吗:完成-请检查。我在手机上,所以现在无法测试。