gpt4 book ai didi

ajax - Mongodb 总行数限制

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

我在使用 mongoDB 的 Restfull 接口(interface)时遇到一些问题。

我已经提交了这个查询 --> http://127.0.0.1:28017/db/collection/?limit=0(我使用 limit = 0 因为我想找到我所有的结果使用 ajax 请求),行数结果为“total_rows”:38185。

但是如果在我的 shell 中执行 db.collection.count() 结果是 496519。

为什么我有这些差异?是否有可能通过 ajax 请求获得相同的结果?

预先感谢您的帮助。

最佳答案

我确信结果不会受到行数的影响,也不会直接受到 MongoDB 的影响,但表明是 Web 服务器(当时创建给任务管理员)。它可能是 Web 服务器响应中断的负载大小,例如 HTTP 错误 413(实体到更大)。

在我的测试中,我在日志中看到条目为“[websvr] killcursors:找到 1 of 1”。这将终止客户端(在 Web 服务器的情况下)和 MongoDB 之间打开的游标。大多数驱动程序不需要调用 OP_KILL_CURSORS,因为 MongoDB 默认定义了 10 分钟的超时。

回去测试我得出结论,网络服务器(内置 MongoDB)的响应大小限制为 38~40MB。让我展示一下我的分析。

我创建了一个包含 1,260,000 个文档的集合。在 REST Web 界面中进行查询,结果为 total_rows:379,677(或 avgObjSize * total_rows = 38MB)。

db.manyrows.stats()
{
"ns" : "forum.manyrows",
"count" : 1260000,
"size" : 125101640,
"avgObjSize" : 99.28701587301587,
"storageSize" : 174735360,
"numExtents" : 12,
"nindexes" : 1,
"lastExtentSize" : 50798592,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 48753488,
"indexSizes" : {
"_id_" : 48753488
},
"ok" : 1
}

======网页输出

{"total_rows" : 379677 ,  "query" : {} ,  "millis" : 6793}

继续...删除/删除了一些收藏文档以适应 38MB。在所有文档中执行新的查询结果,即结果 379642 的 379642 或 38MB。

> db.manyrows.stats()
{
"ns" : "forum.manyrows",
"count" : 379678,
"size" : 38172128,
"avgObjSize" : 100.53816128403543,
"storageSize" : 174735360,
"numExtents" : 12,
"nindexes" : 1,
"lastExtentSize" : 50798592,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 12329408,
"indexSizes" : {
"_id_" : 12329408
},
"ok" : 1
}

===网页输出

{"total_rows" : 379678 ,  "query" : {} ,  "millis" : 27325}

其他集合的新样本:结果 39MB,其中(“avgObjSize”:3440.35 * “total_rows”:11395 = 39MB)

> db.messages.stats()
{
"ns" : "enron.messages",
"count" : 120477,
"size" : 414484160,
"avgObjSize" : 3440.3592386928626,
"storageSize" : 518516736,
"numExtents" : 14,
"nindexes" : 2,
"lastExtentSize" : 140619776,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 1,
"totalIndexSize" : 436434880,
"indexSizes" : {
"_id_" : 3924480,
"body_text" : 432510400
},
"ok" : 1
}

=== 网络输出:

{ “total_rows”:11395, “询问” : {} , “毫秒”:2956

您可以尝试使用像 Bottle 这样的微框架进行查询。

关于ajax - Mongodb 总行数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22646510/

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