假设我有这样的文件:
[
{
productName: 'Soap',
qty: 12
},
{
productName: 'Apple',
qty: 14
},
........
]
如果我想获得总数据,我使用了这个查询:
Model
.find({condition})
.count();
如果我想通过分页获取数据,我使用了这个查询:
Model
.find({condition})
.skip(..)
.limit(..);
是否可以只使用一个查询获取总数据和数据?
答案 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"
}
}
] )
一旦我执行上述查询,我得到以下输出: