Mongodb 使用一个查询获取数据和总数据
假设我有这样的文档:Mongodb 使用一个查询获取数据和总数据,mongodb,mongoose,Mongodb,Mongoose,假设我有这样的文档: [ { productName: 'Soap', qty: 12 }, { productName: 'Apple', qty: 14 }, ........ ] 如果要获取总数据,我使用以下查询: Model .find({condition}) .count(); Model .find({
[
{
productName: 'Soap',
qty: 12
},
{
productName: 'Apple',
qty: 14
},
........
]
如果要获取总数据,我使用以下查询:
Model
.find({condition})
.count();
Model
.find({condition})
.skip(..)
.limit(..);
如果我想通过分页获取数据,我使用以下查询:
Model
.find({condition})
.count();
Model
.find({condition})
.skip(..)
.limit(..);
是否可以通过一次查询获得总数据和数据?为此,您需要使用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"
}
}
] )
我创建了以下文档
执行上述查询后,我得到以下输出:
为此,您需要使用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"
}
}
] )
我创建了以下文档
执行上述查询后,我得到以下输出: