我的mongodb数据库中有一个名为“ restaurants”的集合。
此收藏集只有一个文档
问题是当我使用猫鼬(Model.find({restaurantUid})
)来获取它时,大约需要1 second
来获取它。
此餐厅文档中包含约140种食物(食品),为了追踪由哪种食物选择哪种食物,我有一个n×n数组的表格。文件大小约为3Mb。
您能建议我减少这种获取时间的方法吗?
我真的不认为问题出在索引上,因为我的收藏集中只有一个文档。
谢谢。
答案 0 :(得分:0)
据我所知,没有办法使获取速度更快,我的意思是您可以使用“ MongoDB Altas”之类的云数据库服务,并购买一个好的计划,以便您可以拥有更好的服务器连接并寄予希望最好??
我猜想您的mongo数据库在本地PC上运行,我不认为您可以加快处理速度。
我不确定您到底出了什么问题,您是否将此获取请求作为异步函数发送给数据库??因此,您可以给服务器一些时间来加载所有产品,然后打印表格。
答案 1 :(得分:0)
如果您在应用程序中使用 Mongoose ,则代码看起来像这样,以提高性能...
Model.findById(_id)
.lean()
.exec(function (err, doc) {
//handle error and results
});
Model.findById(_id)
而不是Model.find()
。因为,_id
是在发送命令之前根据 Schema 强制转换的。
参考:mongoosejs doc for findById()
Query.prototype.lean()
返回纯javascript对象,并为只读场景提供高性能。
参考:mongoosejs doc for lean()
也请遵循以下讨论:https://groups.google.com/forum/#!topic/mongoose-orm/u2_DzDydcnA/discussion