繁体   English   中英

来自可调整的外部集合的 MongoDB 聚合

[英]MongoDB aggregate from adjustable foreign collections

我在 orders 集合中的文档有_client键,它是对另一个集合中另一个实体的 ObjectId 引用。 集合可以是组织,也可以是用户- 我的意思是 - 它是变量集合。 我想告诉 Mongo 查找是否在两个集合中都找到了 _client id。

{
    $lookup: {
      from: "users", // could be "organizations" 
      let: { "client": "$_client" }, // could be "_organization"
      pipeline: [
        { $match: { $expr: { $eq: ["$_id", "$$client"] }}},
      ],
      as: "client"
    }
  },
  {
    $unwind: "$client"
  },

我试图刚刚成立两个看起坐,一次_client,一个用于_组织结构其中有一个缺失然而,当我刚刚都没有结果。

$unwind过滤掉数组为空且不包含任何元素的文档。

所以,你必须使用preserveNullAndEmptyArrays并将其设置为true

{ "$unwind": { "path": "$client", "preserveNullAndEmptyArrays": true }}

organizations相同

{ "$unwind": { "path": "$organization", "preserveNullAndEmptyArrays": true }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM