有条件的Mongoose查询

Err*_*ald 2 mongoose mongodb

我有一个查询,我想在where情况下运行,只有当变量为false时.这就是我现在正在做的事情,但它不是最佳的.有没有办法用一个查询来做到这一点?

if (user) {
    models.Interviews.find({}).exec(function (err, interviews) {
        // stuff
    });
} else {
    models.Interviews.find({}).where('group').equals(group_id).where('disabled').equals(false).exec(function (err, interviews) {
        // stuff
    });         
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 7

如果"非最佳"你指的是需要在没有函数的情况下复制'stuff'代码,你可以Query按照以下步骤构建对象:

var query = models.Interviews.find({});
if (!user) {
    query = query.where('group').equals(group_id).where('disabled').equals(false);
}
query.exec(function (err, interviews) {
    // stuff
});
Run Code Online (Sandbox Code Playgroud)