尝试将此代码段简化为一行内容。
var conditions = [{key: isTrueOrFalse}];
if (isTrueOrFalse)
conditions.push({key: null});
query.find({$or: conditions});
默认情况下,密钥未在模型中设置。
我写了这个util函数,使它成为一个单行,但我更愿意使用内置于mongoose中的东西。
var findWithDefaultIfNull = function(query, key, value, defaultValue) {
var conditions = [];
var condition = {};
condition[key] = value;
conditions.push(condition);
if (value == defaultValue) {
condition = {};
condition[key] = null;
conditions.push(condition);
}
console.log(conditions);
query.find({$or: conditions});
};
exports.findWithDefaultIfNull = findWithDefaultIfNull;