Ale*_*lls 4 javascript mongoose mongodb node.js
如果我希望我的后端Node.js API是通用的,我想让客户自己确定他们是否需要'精益'MongoDB查询或完整查询.
为了回到JSON(实际上,POJSO,而不是JSON),我们使用lean(),如下所示:
Model.find(conditions).limit(count).lean().exec(function (err, items) {});
Run Code Online (Sandbox Code Playgroud)
但是,如果我想有条件地调用lean(),该怎么办?
if(isLean){
Model.find(conditions).limit(count).lean().exec(function (err, items) {});
else(){
Model.find(conditions).limit(count).exec(function (err, items) {});
}
Run Code Online (Sandbox Code Playgroud)
有两个不同的调用,这并不是什么大不了的事情,但想象一下,如果我们有多个条件,而不仅仅是isLean,那么我们会有一个因素的事情,我们有很多次调用,而不仅仅是两个不同的调用.
所以我想知道有条件地打电话的最佳方式是什么lean()- 我唯一的想法是如果isLean是假的话,将精益变成无操作......
这将涉及一些猴子补丁TMK -
function leanSurrogate(isLean){
if(isLean){
return this.lean();
}
else{
return this;
}
}
Run Code Online (Sandbox Code Playgroud)
谁有更好的东西?
(或者mongoose API已经有了:lean(false),lean(true)...并且默认为true ...)
我想你是在思考这个问题.您不必限制自己一次使用一系列长方法调用.
您可以在需要的地方进行分解,从而避免重复代码:
var query = Model.find(conditions).limit(count);
if (isLean) {
query = query.lean();
}
query.exec(function (err, items) {});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1127 次 |
| 最近记录: |