我有一个商店,有些产品可以取消发布 - 在正面观看时它们是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) { }
答案 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) { });