gpt4 book ai didi

node.js - Mongodb Nodejs驱动聚合查询不返回数据

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:40 24 4
gpt4 key购买 nike

我有 Mongodb 聚合查询,它在 RoboMongo shell 中运行良好,并给出了正确的结果。

Robo Mongo Shell 查询

db.getCollection('application-filters').aggregate(
{

$match: {


"StatusName" : {$in:["Rejected","Expired"]}


}},
{
$group:{
_id: "$StatusName", COUNT : { "$sum":1}
}},
{
$project: {
StatusName:1,
Count : "$COUNT"
}
},
{
$sort:{
Count:-1
}
}
)

我复制并粘贴了相同的查询并尝试使用 nodejs mongodb 2.2 驱动程序执行。它没有给我任何结果

这是 JavaScript 代码

module.exports = mPool => {
return {
getcountbyStatus (countstatusfilterParams) {
console.log(countstatusfilterParams)
return mPool.collection('application-filters').aggregate(
{

$match: {

'StatusName': {$in: ['Rejected', 'Expired']}

}},
{
$group: {
_id: '$StatusName', COUNT: {'$sum': 1}
}},
{
$project: {
StatusName: 1,
Count: '$COUNT'
}
},
{
$sort: {
Count: -1
}
}
).toArray(function (err, data) {
if (!err) {
console.log(data)
}
})
}
}
}

任何帮助将不胜感激。

谢谢

最佳答案

你试过这个吗:

db.collection.aggregate([
// do your query
]).toArray(function(err, docs) {
// do something
}

因此,在这种情况下,您的 Mongodb 聚合应该是:

module.exports = mPool => {
return {
getcountbyStatus (countstatusfilterParams) {
console.log(countstatusfilterParams)
return mPool.collection('application-filters').aggregate([
{

$match: {

'StatusName': {$in: ['Rejected', 'Expired']}

}},
{
$group: {
_id: '$StatusName', COUNT: {$sum: 1}
}},
{
$project: {
StatusName: 1,
Count: '$COUNT'
}
},
{
$sort: {
Count: -1
}
}
]).toArray(function (err, data) {
if (!err) {
console.log(data)
}
})
}
}
}

关于node.js - Mongodb Nodejs驱动聚合查询不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com