1
我必须在聚合pipleline中执行此操作。 我有两个字段必须用来决定是否可以包含文档。有条件地过滤MongodDb中的文档
首先是agentType - 可能具有值1或2. 其次是agentImage - key可能存在与否。
我在找什么是这样的。
如果(agentType === 1 & & agentImage不存在) - >筛选掉, 如果(agentType === 2) - >保存文件
对于agentType === 2,我想所有的文件不管agentImage存在与否。
样品文件─
在这种情况下的结果应该是─
{agentType: 1, agentImage: "abc"}
{agentType: 2}
{agentType: 2, agentImage: "xyz"}
db.getCollection('agents').aggregate([{"$match":{agentImages: {'$exists':{'$or':[{$and:[{$eq:{'agentType': 1}},{$ne: {'agentImages': null}}]},{$eq: {'agentType': 2}}]}}}}])
这是不行的,它过滤掉与agentType 2与agentImage不存在的所有文件。