前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongoose 主键关联的表,自动带出另一张表的数据

mongoose 主键关联的表,自动带出另一张表的数据

作者头像
拿我格子衫来
发布2022-02-14 20:46:05
7070
发布2022-02-14 20:46:05
举报
文章被收录于专栏:TopFETopFE

有这样两张表

代码语言:javascript
复制
addon_passwordbox_category
代码语言:javascript
复制
'use strict'
var mongoose = require('mongoose'),
  Schema = mongoose.Schema

/***
 * 加密后的密码表
 *2018年10月18日14:41:23
 */
var addon_passwordbox_list = new Schema({
  email: String,             // 用户邮箱
  title: String,             // 密码的标题
  encryptedPassword: String, // 加密后的密码
  catId: {type: Schema.Types.ObjectId, ref: 'addon_passwordbox_category'},             // addon-passwordbox-category表中对应的类别的_id
  desc: String,              // 密码的描述
  CreatedDate: {type: Date, default: Date.now()}         // 创建时间
})

mongoose.model('addon_passwordbox_list', addon_passwordbox_list)
代码语言:javascript
复制
'use strict'
var mongoose = require('mongoose'),
  Schema = mongoose.Schema

/***
 * 密码的分类表
 *2018年10月18日14:41:23
 */
var addon_passwordbox_category = new Schema({
  email: String,             // addon-passwordbox-list表中的_id
  name: String,              // 没有加密的密码
  desc: String,              // 类别的描述
  CreatedDate: {type: Date, default: Date.now()}          // 创建时间
})

mongoose.model('addon_passwordbox_category', addon_passwordbox_category)
代码语言:javascript
复制
addon_passwordbox_list

二张表使用catId作为主键关联 现在查 addon_passwordbox_list 表时要自动带出关联的addon_passwordbox_category表的数据

使用

代码语言:javascript
复制
populate()

代码如下:

代码语言:javascript
复制
 findAllByCondition: function (condition, callback) {
    addon_passwordbox_list
      .find(condition, {__v: 0})
      .lean()
      .populate('catId', 'id name')
      .exec(function (err, reply) {
        if (err) {
          callback(err || new Error('find all by conditon error'))
        } else {
          callback(null, reply)
        }
      })
  },

此外还可以这样用

代码语言:javascript
复制
.populate({
  path: 'fans',
  match: { age: { $gte: 21 }},
  select: 'name -_id',
  options: { limit: 5 }
})
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档