NodeJs - 基于输入数据

时间:2018-01-10 04:43:04

标签: node.js mongodb express mongoose

是否可以在mongoose查找参数的变量基础上使用$ nin和$ in?

如果假设我得到req.params.take = True,那么我希望参数检查

Document.find({_id : {
  $in:[PreDefinedArray]
}}

或者如果它不存在我希望它是

Document.find({_id : {
  $nin:[PreDefinedArray2]
}}

对于许多使用匹配的populate语句,这不是可以的,因此我不能使用if else或任何其他条件语句来使用多种类型的查询。可以用其他技术完成吗?当我尝试用这样的字符串变量替换$ in和$ nin

var selector = (check) ? ("$in") : ("$nin");

Document.find({_id : {
  selector : [PreDefinedArray2]
}}

但它没有用。

1 个答案:

答案 0 :(得分:0)

在mongoose中使用条件语句:

 { 
  $cond: 
   { 
    if: <boolean-expression>, then: <true-case>,
    else: <false-case-> 
   } 
 }