MongoDB / Mongoose .find()等于true / false,其中null == true

时间:2014-05-28 15:55:46

标签: mongodb mongoose

尝试将此代码段简化为一行内容。

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;

0 个答案:

没有答案