根据用户输入,我想在我的数据库中搜索类型是多个值之一的文档。如果输入等于'任何',我希望它返回类型等于任何内容的文档。
我的$ match是聚合pipleline的一部分。我只想做类似这样的事情,其中我设置为inputType的值将导致$ match返回所有文档而不管其类型值如何。
if (inputType == 'any')
inputType = '*';
{"$match": {
type: inputType,
}}
有这样的事吗?或者更好的方法呢?
答案 0 :(得分:2)
你可以这样做:
if (inputType === 'any') {
inputType = {
$exists: true
};
}
db.collection.aggregate([
{
$match: {
type: inputType,
}
}
]);
答案 1 :(得分:0)
发现您可以使用正则表达式。这样做了:
inputType = /.*/g;