Mongoose $匹配任何值

时间:2016-12-07 00:28:13

标签: node.js mongodb mongoose

根据用户输入,我想在我的数据库中搜索类型是多个值之一的文档。如果输入等于'任何',我希望它返回类型等于任何内容的文档。

我的$ match是聚合pipleline的一部分。我只想做类似这样的事情,其中​​我设置为inputType的值将导致$ match返回所有文档而不管其类型值如何。

 if (inputType == 'any')
 inputType = '*';

{"$match": { 
  type: inputType, 
}}

有这样的事吗?或者更好的方法呢?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

if (inputType === 'any') {
  inputType = {
    $exists: true
  };
}

db.collection.aggregate([
  {
    $match: { 
      type: inputType, 
    }
  }
]);

答案 1 :(得分:0)

发现您可以使用正则表达式。这样做了:

inputType = /.*/g;