gpt4 book ai didi

mongodb - db.mydb.find({tag :'java' }).count() 和 db.mydb.count({tag :'java' }) 在 mongodb 中有什么区别

转载 作者:可可西里 更新时间:2023-11-01 09:57:11 25 4
gpt4 key购买 nike

我需要在 mondodb 中快速计算大量文档(30 M)

db.mydb.find({tag:'java'}).count() 和 db.mydb.count({tag:'java'}) 有什么区别

一个比另一个快?

我在标签上有索引。

谢谢,

费德里科。

最佳答案

这里有一个小技巧来了解 MongoDB 命令在幕后做了什么:

> 
> db.mydb.count
function (x) {
return this.find(x).count();
}
>
> db.mydb.find().count
function (applySkipLimit) {
var cmd = {count:this._collection.getName()};
if (this._query) {
if (this._special) {
cmd.query = this._query.query;
} else {
cmd.query = this._query;
}
}
cmd.fields = this._fields || {};
if (applySkipLimit) {
if (this._limit) {
cmd.limit = this._limit;
}
if (this._skip) {
cmd.skip = this._skip;
}
}
var res = this._db.runCommand(cmd);
if (res && res.n != null) {
return res.n;
}
throw "count failed: " + tojson(res);
}

是的,您可以看到 collection.count 只是 collection.find().count 的包装器

关于mongodb - db.mydb.find({tag :'java' }).count() 和 db.mydb.count({tag :'java' }) 在 mongodb 中有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4229052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com