查询可过滤嵌套数组而不包含不存在的数组

时间:2019-06-04 21:46:49

标签: mongodb aggregation-framework

我需要对嵌套数组进行过滤的查询结果。我通过形成这样的聚合管道阶段来完成这项工作:

"{ $addFields: { '" + arrayFilter.field +
    "': { $filter: { input: '$" + arrayFilter.field +
    "', cond: { " + arrayFilter.cond + " } } } } }" );

但同时满足以下两个条件时,就会出现问题:

  1. arrayFilter.field是嵌套的,即包含点
  2. arrayFilter.field中的路径段之一在数据库中不存在

在这种情况下,我希望舞台的效果为零。不幸的是,查询结果是这样的:

  1. 通向不存在数组的路径已实现
  2. 不需要的数组被赋予一个null值。

如何避免这种不良行为,而只过滤那些存在的数组?

0 个答案:

没有答案