我需要对嵌套数组进行过滤的查询结果。我通过形成这样的聚合管道阶段来完成这项工作:
"{ $addFields: { '" + arrayFilter.field +
"': { $filter: { input: '$" + arrayFilter.field +
"', cond: { " + arrayFilter.cond + " } } } } }" );
但同时满足以下两个条件时,就会出现问题:
arrayFilter.field
是嵌套的,即包含点arrayFilter.field
中的路径段之一在数据库中不存在在这种情况下,我希望舞台的效果为零。不幸的是,查询结果是这样的:
null
值。如何避免这种不良行为,而只过滤那些存在的数组?