Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 猫鼬条件查找_Node.js_Mongoose - Fatal编程技术网

Node.js 猫鼬条件查找

Node.js 猫鼬条件查找,node.js,mongoose,Node.js,Mongoose,我有一个商店,一些产品可以不发布-当在前面看他们是404。但是,如果url中给出了“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, produ

我有一个商店,一些产品可以不发布-当在前面看他们是404。但是,如果url中给出了“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) { }

这不是一个简单的方法,但这里有一个典型的方法:

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

这是行不通的-问题是如果设置了预览,那么它必须同时允许true或false,所以。。。请求参数(“预览”)?真:真与假
Product.findOne({
  _id: req.param('id')
  publish: req.param('preview') ? true: false
}).populate('categories').exec(function(err, product) { });