使用一个查询获取数据和总数据

时间:2016-11-15 01:26:27

标签: mongodb mongoose

假设我有这样的文件:

[
        {
          productName: 'Soap',
          qty: 12
        },
        {
          productName: 'Apple',
          qty: 14
        },
        ........
]

如果我想获得总数据,我使用了这个查询:

Model
   .find({condition})
   .count();

如果我想通过分页获取数据,我使用了这个查询:

Model
   .find({condition})
   .skip(..)
   .limit(..);

是否可以只使用一个查询获取总数据和数据?

1 个答案:

答案 0 :(得分:0)

你需要使用MongoDB的聚合框架。

db.kim1.aggregate( [
{
"$match" : {
"productName" : "orange"
}
},
{
"$group" : {
"_id" : null,
"my_documents" : {
"$push" : {
"_id" : "$_id",
"productName" : "$productName",
"qty" : "$qty"
}
},
"docCount" : {
"$sum" : 1
}
}
},
{
"$project" : {
"_id" : 0,
"my_documents" : 1,
"total" : "$docCount"
}
}
] )

我创建了以下文档 enter image description here

一旦我执行上述查询,我​​得到以下输出:

enter image description here