gpt4 book ai didi

node.js - Mongodb查询响应时间慢

转载 作者:太空宇宙 更新时间:2023-11-04 02:25:47 26 4
gpt4 key购买 nike

我正在开发一个使用灵活模式的项目。我已经设置了本地 mongodb 服务器并在 Node 内使用 mongoose。

遇到一个有趣的扩展问题,想知道这些响应时间是否正常。如果查询返回 50 个文档,则 mongo 需要 5-10 秒才能响应。在同一个集合中,返回 2 个文档的查询是毫秒。

连接速度并不慢,因为它是本地的,想知道是否有人知道导致此问题的原因。

我使用的是 OS X 和 mongo 3.0.1

编辑:文档目前几乎是空的,只有一两个属性。

编辑:文档总数并不重要,重要的是返回的大小。如果有 51 个文档,其中 50 个文档如 {_id: "...", _schema:"bar"} 和 1 个 {_id:"...", _schema: "foobar"},则 collection.find({_schema:"bar"}) 需要几秒钟,而 collection.find({_schema:"foobar"}) 不需要时间。

解释输出:

"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "mean-dev.documentmodels",
"indexFilterSet" : false,
"parsedQuery" : {
"$and" : [ ]
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"$and" : [ ]
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"serverInfo" : {
"host" : "Sams-MBP.local",
"port" : 27017,
"version" : "3.0.1",
"gitVersion" : "nogitversion"
},
"ok" : 1

最佳答案

不,不应该花那么多时间。

问题可能出在查询中的操作(投影、排序、地理搜索、分组等)。解决这个问题的最佳方法是创建索引来加速此类查询。

要在 _schema 字段上创建索引,请在 mongodb 中执行该命令:

db.collection.ensureIndex({"_schema":1});

关于node.js - Mongodb查询响应时间慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30562127/

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