mongoose——关联查询

示例表

文章表(article)

字段 类型 备注
_id ObjectId id
title varchar 标题
author varchar 作者
content varchar 内容

评论表(comment)

字段 类型 备注
_id ObjectId id
p_id ObjectId 文章id
nickname varchar 昵称
content varchar 评论内容

$lookup-连表查询

// 查出孙尚香的文章以及文章的评论信息
articleModel.aggregate([
  {
    $match:{
      author:"孙尚香"
    }
  },
  {
    $lookup:{
      from: 'comment',           // 被关联的表
      localField: '_id',         // 关联字段
      foreignField: 'p_id',      // 外键
      as: 'comments'             // 名称
    }
  },
  {
    $project:{ _id: 0, title: 1,author: 1, comments: 1 }
  }
],(err, docs) => {
  if(err) console.log(err);
  console.log(JSON.stringify(docs));
})
  /*
  查询结果:
  [
    {
      "title": "mongoose的简单使用",
      "author": "孙尚香",
      "comments": [
        {
          "_id": "5eda542f600d8b294c95e5b8",
          "p_id": "5eda5291600d8b294c95e5b4",
          "nickname": "猴三棒",
          "content": "文章写的不错哟"
        },
        {
          "_id": "5eda5493600d8b294c95e5ba",
          "p_id": "5eda5291600d8b294c95e5b4",
          "nickname": "韩跳跳",
          "content": "大小姐文章写的真棒啊"
        }
      ]
    },
    ...
  ]
  */
})

你可能感兴趣的:(mongodb)