如何在 Mongodb 的 find 中计算文档? [复制]
Posted
技术标签:
【中文标题】如何在 Mongodb 的 find 中计算文档? [复制]【英文标题】:How can I count docs in find in Mongodb? [duplicate] 【发布时间】:2019-10-14 09:22:20 【问题描述】:我正在尝试计算 mongodb 请求中的文档。
我可以在toArray()
-s 回调中计算count = docs.length
,但总是给10
。 A 可以做 2 个相同的请求,只需将 find
替换为 count
但这似乎是错误的
let count;
db.get().collection('images').find(
$and: [
tags: $in: tags ,
date: $gte: date.toISOString(),
title:$regex: query, $options: "$i",
],
(err, docs)=>docs.toArray((err, res)=>
count= res.length
)
)
.skip(0).limit(10).toArray((err, docs)=>
res = data:docs, dataLength:count
cb(err, res);
// )
);
我遇到了这个错误:TypeError: Cannot read property 'skip' of undefined
【问题讨论】:
【参考方案1】:您可能总是收到 10 回,因为您在执行 .limit(10)
时特别说“给我 10 回”。现在,您收到该错误的原因是因为必须将.skip
添加到.find()
的末尾。您的查询应该是这样的:
db.collection('images').find(
$and: [
tags: $in: tags ,
date: $gte: date.toISOString(),
title:$regex: query, $options: "$i",
]
).skip(0).limit(10).toArray((err, docs) =>
if (err) console.log(err)
else
let res = data:docs, dataLength:docs.length
// do any other logic here
)
【讨论】:
以上是关于如何在 Mongodb 的 find 中计算文档? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 mongodb 中,如何仅选择文档中与 find() 条件匹配的对象?
如何在 MongoDB shell 中打印出 20 多个项目(文档)?