当前位置: 首页 > 知识库问答 >
问题:

在MongoDB中,如何使用$lookup只获取不匹配的记录?

乌甫
2023-03-14

在Mongodb中,我想获取那些没有任何订单的产品的数据。

集合:master_product_details、master_order_details

我使用的是普通的$lookup查询,它给出了与Order匹配或不匹配的所有记录。

db.master_product_details.aggregate([
        { 
        $match: { seller_user_id : 'seller_id' } 
        },
        {
        $lookup : {from: "master_order_details",localField: "seller_sku_id", foreignField: "sku_id", as : "Orders"} 
        },
        {$unwind : '$Orders'},
        {$project : { seller_sku_id : 1, product_title : 1, _id : 0}

            }
        ])

还有其他方法可以得到结果吗?

共有1个答案

卢英叡
2023-03-14

在管道末尾再使用一个$match条件

db.master_product_details.aggregate([
  { "$match": { "seller_user_id": "seller_id" }},
  { "$lookup": {
    "from": "master_order_details",
    "localField": "seller_sku_id",
    "foreignField": "sku_id",
    "as": "Orders"
  }},
  { "$match": { "Orders": [] }}
])
 类似资料:
  • 问题内容: 使用聚合,我使用golang加入了两个mongodb集合。结果如下所示:- 输出:- 此 输出 由以下golang代码获取:- 问题是: -我只需要的 不是 了。在上面显示的输出中意味着在其中显示数据,但是我只需要像这样的值:- 但它正在显示数据。如何获得输出中数据的计数值。先感谢您。 问题答案: 因此,您的汇总实际上返回了该字段中的所有文档,该文档隐含了结果的数量,您可以使用内置函数

  • 问题内容: 我是mongodb的新手,并在下面的文档中使用mongoose进行练习,并且遇到了一个非常令人困惑的问题。 我有用户架构 评论模式 和模型 然后我做 但是我在查询中得到空的共同点。根据数据库中的数据,我不应该得到这个结果。搜索后,我仍然找不到错误所在。 最后但并非最不重要的一点是,我需要使用方法,因此我必须在参考文件上使用,是否有意义? 问题答案: $ lookup中的字段是集合名称,

  • 请帮我找到一个合适的解决办法 收集被存储的用户详细信息app_users 用户预订是存储预订的集合 我正在使用的查找(左连接)查询是 我想从用户集合中选择具有相应用户详细信息的预订,但返回为空,因为mongodb正在将字符串与objectId进行比较,所以是否有方法执行此任务?

  • 假设我有一个员工姓名列表,我想选择具有这些姓名的所有行: 也许简和乔不在这张桌子上。我如何创建一个查询来标识我的列表中根本不存在的项目。 我不是在寻找任何特定的格式作为返回的结果;它可以是逗号分隔的,也可以是具有各自不匹配名称的行列表。

  • 我是新的MongoDB工作,我需要在以下方面的帮助。

  • wend尝试此查询,返回查找为空 返回json 我尝试了这篇文章,但没有发生MongoDB将项目字符串聚合到ObjectId和这个MongoDB$lookup在PHP中使用_id作为foreignField 更新 这是文档“用户”