我有一个 MongoDB 聚合查询,其中包含以下内容:
{ $match: { version: versionNumber }
'versionNumber' 是聚合的可选输入参数。如果未提供此版本号,则我不希望执行此匹配。
目前,如果没有提供 versionNumber,匹配仍然会发生,我得到一个空白的查询输出。
Mongo 有没有办法做到这一点?谢谢!
最佳答案
有一种方法可以做到这一点,是的,但它应该在应用程序代码中完成。在构建传递给查询的管道数组时,如果提供了必要的信息,则只包含 $match
阶段。
var pipeline=[]
if (versionNumber) pipeline.push( {$match: {version: versionNumber }} )
pipeline.push( ... Other Stages ... )
db.collection.aggregate(pipeline)
关于MongoDB 聚合 - 如果提供其他不匹配,则匹配输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63461684/