猫鼬条件查找

时间:2012-12-24 20:03:08

标签: node.js mongoose

我有一个商店,有些产品可以取消发布 - 在正面观看时它们是404.但是如果在网址中给出“preview = 1”,我想预览它们。我正在寻找一种优雅的,单一的方式来插入我的查找功能:

var preview = req.param('preview');
Product.findOne({ _id: req.params.id, publish: TRUE_OR_ANY_IF_PREVIEW_SET)}).populate('categories').exec(function(err, product) { }

2 个答案:

答案 0 :(得分:4)

这不是一个单行,但这是典型的做法:

var query = {_id: req.params.id};
if (!preview) {
    query.publish: true
}
Product.findOne(query).populate('categories').exec(function(err, product) { }

答案 1 :(得分:1)

Product.findOne({
  _id: req.param('id')
  publish: req.param('preview') ? true: false
}).populate('categories').exec(function(err, product) { });