在聚合中,我通过查找添加一些字段,然后在聚合的后期对其进行一些进一步的操作。 但是,有时字段为空-在这种情况下,聚合只会添加其他也为空的字段,我想避免这种情况。更具体地说,假设我具有以下结构:
表A:
{_id, foreignID, others}
表B:
{_id, foreignC, other data}
表C:
{_id, other data}
在汇总过程中,我按照以下阶段执行一些操作:
当foreignC为null时,会出现问题。我仍然必须将其包含在我的初始项目中,否则,如果它不为null,那么我将无法进行最后的查找,但是如果它只是包含在内,并且对其进行操作,则会添加也为null的子字段
如何避免这种情况?
此刻,我得到的结果是这样的:
{_id: ..., foreignB: {_id: ..., foreignC: {other data: null}, other data: ...}, data: ...}
当我想要这样的时候:
{_id: ..., foreignB: {_id: ..., other data: ...}, data: ...}
如果我说unwind时指定unwind只排除该字段,而不排除整个文档,它将解决我的问题。