【发布时间】:2015-10-31 19:10:44
【问题描述】:
如果我希望我的后端 Node.js API 是通用的,我想让客户自己确定他们想要一个“精简”的 MongoDB 查询还是一个完整的查询。
为了只取回 JSON(实际上是 POJSO,而不是 JSON),我们像这样使用lea():
Model.find(conditions).limit(count).lean().exec(function (err, items) {});
但是,如果我想有条件地调用lean()怎么办?
if(isLean){
Model.find(conditions).limit(count).lean().exec(function (err, items) {});
else(){
Model.find(conditions).limit(count).exec(function (err, items) {});
}
有两个不同的调用并不是什么大不了的事,但想象一下,如果我们有多个条件,而不仅仅是isLean,那么我们会有一个阶乘的事情发生,我们有很多调用,而不是只有 2 个不同的。
所以我想知道有条件地调用lean() 的最佳方法是什么——我唯一的想法是如果isLean 为假,则将精益变成无操作...
这将涉及一些猴子修补 TMK -
function leanSurrogate(isLean){
if(isLean){
return this.lean();
}
else{
return this;
}
}
谁有更好的?
(或者也许 mongoose API 已经有了这个:lean(false)、lean(true)...并且默认为 true...)
【问题讨论】:
-
你回答你自己的问题.... :) mongoosejs.com/docs/api.html#query_Query-lean
-
你是对的,谢谢!对猫鼬有好处,但如果不是这种情况,我仍然想知道是否有答案:)
标签: javascript node.js mongodb mongoose