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不存在的所有文件。