2012-12-24 125 views
0

我有一個商店,有些產品可以不發佈 - 當在前面查看他們是404。但是,如果在URL中給出「預覽= 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

這不是很一行代碼,但這裏做的典型方式:

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

這是行不通的 - 問題是,如果設置了預覽,那麼它必須允許true或false,所以... req.param('preview')?真:真假 – cyberwombat