如果它创建空字段,则排除聚合阶段

时间:2019-06-27 08:57:20

标签: mongodb null lookup aggregation

在聚合中,我通过查找添加一些字段,然后在聚合的后期对其进行一些进一步的操作。 但是,有时字段为空-在这种情况下,聚合只会添加其他也为空的字段,我想避免这种情况。更具体地说,假设我具有以下结构:

表A:

{_id, foreignID, others}

表B:

{_id, foreignC, other data}

表C:

{_id, other data}

在汇总过程中,我按照以下阶段执行一些操作:

  • 通过foreignID包含的查找表B
  • 进行一些操作,包括一个必须包含foreignC的项目,因为以后我需要它
  • 通过includedB.foreignC查找表C
  • 在上一次查找中执行一些项目操作

当foreignC为null时,会出现问题。我仍然必须将其包含在我的初始项目中,否则,如果它不为null,那么我将无法进行最后的查找,但是如果它只是包含在内,并且对其进行操作,则会添加也为null的子字段

如何避免这种情况?

此刻,我得到的结果是这样的:

{_id: ..., foreignB: {_id: ..., foreignC: {other data: null}, other data: ...}, data: ...}

当我想要这样的时候:

{_id: ..., foreignB: {_id: ..., other data: ...}, data: ...}

如果我说unwind时指定unwind只排除该字段,而不排除整个文档,它将解决我的问题。

0 个答案:

没有答案