You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合使用$group与$lookup聚合操作查询书籍关联的出版社列表

正确聚合查询语句

db.books.aggregate([
  // 拆分每本书的publisher数组,生成单条出版社id对应的记录
  { $unwind: "$publisher" },
  // 对出版社id做去重处理,避免重复关联查询
  { $group: { _id: "$publisher" } },
  // 关联publisher集合,匹配对应出版社的详情信息
  {
    $lookup: {
      from: "publisher",
      localField: "_id",
      foreignField: "id",
      as: "publisherInfo"
    }
  },
  // 拆分关联得到的出版社数组(单id对应唯一出版社,数组仅包含一个元素)
  { $unwind: "$publisherInfo" },
  // 将出版社详情对象提升为根文档,直接输出目标格式
  { $replaceRoot: { newRoot: "$publisherInfo" } }
])

你原来的写法执行后,出版社详情都包裹在publishers数组中,还保留了分组生成的_id字段,补充最后两步处理就能得到你需要的输出格式。

内容的提问来源于stack exchange,提问作者Sufail Kalathil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:09:01