Mongodb find()需要1秒

时间:2019-03-09 23:07:25

标签: arrays node.js mongodb mongoose

我的mongodb数据库中有一个名为“ restaurants”的集合。

此收藏集只有一个文档

问题是当我使用猫鼬(Model.find({restaurantUid}))来获取它时,大约需要1 second来获取它。

此餐厅文档中包含约140种食物(食品),为了追踪由哪种食物选择哪种食物,我有一个n×n数组的表格。文件大小约为3Mb。

您能建议我减少这种获取时间的方法吗?

我真的不认为问题出在索引上,因为我的收藏集中只有一个文档。

谢谢。

2 个答案:

答案 0 :(得分:0)

据我所知,没有办法使获取速度更快,我的意思是您可以使用“ MongoDB Altas”之类的云数据库服务,并购买一个好的计划,以便您可以拥有更好的服务器连接并寄予希望最好??

我猜想您的mongo数据库在本地PC上运行,我不认为您可以加快处理速度。

我不确定您到底出了什么问题,您是否将此获取请求作为异步函数发送给数据库??因此,您可以给服务器一些时间来加载所有产品,然后打印表格。

答案 1 :(得分:0)

如果您在应用程序中使用 Mongoose ,则代码看起来像这样,以提高性能...

Model.findById(_id)
     .lean()
     .exec(function (err, doc) {
     //handle error and results
});
  1. Model.findById(_id)而不是Model.find()。因为,_id是在发送命令之前根据 Schema 强制转换的。 参考:mongoosejs doc for findById()

  2. Query.prototype.lean()返回纯javascript对象,并为只读场景提供高性能。 参考:mongoosejs doc for lean()

也请遵循以下讨论:https://groups.google.com/forum/#!topic/mongoose-orm/u2_DzDydcnA/discussion