首页 > 解决方案 > 如何在monogdb中找到两个集合的交集?

问题描述

假设,我有 2 个收藏

第一 :-

db.product_main

{
  _id:123121,
  source_id:"B4456dde1",
  title:"test Sample",
  price: 250
  quantity: 40
}

其中包含大约 10000 个对象(数组),唯一字段是 source_id。

第二 :-

db.product_id

{
  "_id":58745633,
  "product_id":"B4456dde1"
}

由 ~500 组成,只有字段“product_id”等于 db.product_main 的“source_id”

现在,我想将两个集合相交,以便只找到那些在 db.product_id 中不存在的集合。

db.product_main.aggregate({任何查询})

标签: phpmongodbaggregation-frameworkphalcon

解决方案


只需使用查找阶段查找与“product_main”集合关联的产品,然后匹配空数组(即未找到 product_id 的记录)

db.product_main.aggregate([
  {
    $lookup: {
      from: "product_id",
      localField: "source_id",
      foreignField: "product_id",
      as: "products_available"
    }
  },
  {
    $match: {
      products_available: {
        $size: 0
      }
    }
  }
])

推荐阅读