Node.js 和 MongoDB:保存集合还是每次都抓取它们?

Posted

技术标签:

【中文标题】Node.js 和 MongoDB:保存集合还是每次都抓取它们?【英文标题】:Node.js & MongoDB: Keeping collections or grabbing them each time? 【发布时间】:2013-10-16 11:47:21 【问题描述】:

最佳实践/优化问题:当处理在我的 Mongo DB 中使用几个不同集合的请求时,每个请求...使用官方 MongoDB Node.js 以“严格”形式获取它是否有效/低效司机,每次提出请求?或者我应该保存它,保留所有未来请求的集合参考?将我最常使用的 Mongo 集合对象放在手边是否有一些(我没有预料到的)好处?或者将它们保存在我的 Node.js 应用程序的 var 中是否存在一些风险?我是从性能的角度和不可预见的后果的角度来问的。

【问题讨论】:

【参考方案1】:

如果您获得一个严格模式处于活动状态的集合,驱动程序将执行一些步骤来确定您尝试获取的集合是否确实存在。据我所知,这样做的开销是额外的数据库请求。

所以你可以做两件事:

如果您确定该集合存在,请打开严格模式;我认为仅db.collection('yourcollection')(无回调,在非严格模式下)的开销很小; 在严格模式下获取集合,将其存储在全局(或“可访问”)的某个位置,然后重新使用它。我认为唯一涉及的风险是当您的应用仍然引用它时从数据库中删除了一个集合,但风险可能只涉及任何查询都可能失败;

我不得不承认我对 MongoDB 驱动程序(我自己是 Mongoose 用户)不是很熟悉,所以我的意见主要基于阅读它的代码和文档;)

【讨论】:

好的,感谢您的回复。老实说,我想得到一些答案,达成某种共识/看第二和第三个意见,关于什么是最好的。 @PaulB。完全同意,不要只相信我 :) 让它徘徊一段时间,看看其他人是否发布了他们价值 0.02 美元的信息。

以上是关于Node.js 和 MongoDB:保存集合还是每次都抓取它们?的主要内容,如果未能解决你的问题,请参考以下文章

node.js 表达 mongodb 保存消息?

Node.JS、Express 和 MongoDB :: 多个集合

Node.js 监听 MongoDB 变化

从 Node.js 向 MongoDB 集合插入不同类型的值

如何使用node.js中的循环将表单数据保存为对象和对象数组到mongodb?

Node.js 和 MongoDB 如果存在文档完全匹配,则忽略插入