我正在使用db.collection.aggregate()使用下面的查詢。 我得到的結果很好,其中投影字段完全是下面指定的字段。我也想得到符合這個標準的文件總數。MongoDB聚合和項目總數結果
db.collection.aggregate([
{ $match: { "age": {"$gte": 20, "$lte": 30}} },
{ $lookup: { from: "photos", localField: "post_id", foreignField: "post_id", as: "photos"} },
{ $project: {
"title": 1,
"photos.path": 1,
"age": 1,
"city": 1,
"location": 1,
"post_id": 1,
"score": { "$meta": "textScore"}
} },
{ $sort: { score: { $meta: "textScore" } } },
{ $skip: 0 },
{ $limit: 30 },
])
經過一番研究,我發現,我需要添加下面的選項:
{ $group: { _id: null, count: { $sum: 1 } } }
然而,這種增加現在我得到這樣的迴應:
{ "_id" : null, "count" : 400 }
的計數是正確的,但我想要投影的字段不再存在。有沒有一種方法來獲得計數和我想投射的領域中的一個結果?或者我必須運行兩個單獨的查詢,一個用於計數,另一個用於我想要投影的字段?
訪問分組的文檔。後者與前者沒有共同之處。後者應該返回1個結果,'count'是文檔的總數。如果沒有,你的設置中會遇到一些更嚴重的問題。 –
感謝Markus。我明白第二個與第一個無關。我編輯了這個問題,使它更有意義。第二部分是我加入第一部分的內容。意圖是獲得符合相同標準的文件總數。 – timhysniu