集計からの合計ドキュメント数を調べることを検討しています。下のコードから数えることは可能ですか?もし誰かがアイデアを持っていたら私に知らせてください。集計ルックアップ結果からのカウントの取得方法
db.collection("camp", function (err, camp) {
camp.aggregate([{$match: {status: {$ne: "Rejected"}}},
{'$lookup': {
from: "organization",
localField: "organization",
foreignField: "organizationId",
as: "orgnData"
}
}, {'$lookup': {
from: "organizer",
localField: "organizer",
foreignField: "organizerId",
as: "ornrData"
}},
{$unwind: "$orgnData"},
{$unwind: "$ornrData"},
{$match: {'ornrData.city': 'Nagpur'}},
{$skip: 0}, {$limit: 10},
{$sort: {id: -1}}
], function (err, info) {
res.json(info);
});
});
上記のコード私は限界までの結果の合計行数を得るために探しています。誰かがアイデアを持っているなら私に知らせてください?
あなたが「ページング」同じクエリでカウントを取得しようとしています。しないでください、それはかなりばかげています。私が確信しているどこかに「なぜ」の良い説明があります。しかし、結果をすべて1つのドキュメントの配列に入れてカウントを取得し、次にそれを「ページ」に展開する必要があります。別のパイプラインを「カウント」し、別の「結果」をページで実行してください。それは何年にもわたってデータベースのページングに取り組んできましたが、変わらないのです。 –
貴重な時間を費やしてくれてありがとう@ Blakes Seven –
私はまだそれを費やしています。私は本当に[制限を使用してMongoDBとの合計文書の数を取得](http://stackoverflow.com/a/21803405/2313887)の回答の本体には満足していませんが、少なくともポイントに到達しています。私がやったと思った、あるいは他の誰かがここで '$ push'問題を具体的に言及していたので、私はまだ参照を探していました。しかし実際には、結果のためにこのパイプラインを1つだけ実行し、「スキップ」と「制限」なしの合計カウントに対して簡単な '{" _id ":null、" count ":{" $ sum ":1}}'を実行してください。まだ参照を検索しています。 –