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

举报
拿我格子衫来 发表于 2022/03/17 22:54:02 2022/03/17
【摘要】   有这样两张表 addon_passwordbox_category 'use strict'var mongoose = require('mongoose'), Schema = mongoose.Schema /*** * 加密后的密码表 *2018年10月18日14:41:23 */var addon_pas...

 

有这样两张表

addon_passwordbox_category

  
  1. 'use strict'
  2. var mongoose = require('mongoose'),
  3. Schema = mongoose.Schema
  4. /***
  5. * 加密后的密码表
  6. *2018年10月18日14:41:23
  7. */
  8. var addon_passwordbox_list = new Schema({
  9. email: String, // 用户邮箱
  10. title: String, // 密码的标题
  11. encryptedPassword: String, // 加密后的密码
  12. catId: {type: Schema.Types.ObjectId, ref: 'addon_passwordbox_category'}, // addon-passwordbox-category表中对应的类别的_id
  13. desc: String, // 密码的描述
  14. CreatedDate: {type: Date, default: Date.now()} // 创建时间
  15. })
  16. mongoose.model('addon_passwordbox_list', addon_passwordbox_list)

  
  1. 'use strict'
  2. var mongoose = require('mongoose'),
  3. Schema = mongoose.Schema
  4. /***
  5. * 密码的分类表
  6. *2018年10月18日14:41:23
  7. */
  8. var addon_passwordbox_category = new Schema({
  9. email: String, // addon-passwordbox-list表中的_id
  10. name: String, // 没有加密的密码
  11. desc: String, // 类别的描述
  12. CreatedDate: {type: Date, default: Date.now()} // 创建时间
  13. })
  14. mongoose.model('addon_passwordbox_category', addon_passwordbox_category)
addon_passwordbox_list

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

 

使用 

populate()
 

代码如下:


  
  1. findAllByCondition: function (condition, callback) {
  2. addon_passwordbox_list
  3. .find(condition, {__v: 0})
  4. .lean()
  5. .populate('catId', 'id name')
  6. .exec(function (err, reply) {
  7. if (err) {
  8. callback(err || new Error('find all by conditon error'))
  9. } else {
  10. callback(null, reply)
  11. }
  12. })
  13. },

此外还可以这样用


  
  1. .populate({
  2. path: 'fans',
  3. match: { age: { $gte: 21 }},
  4. select: 'name -_id',
  5. options: { limit: 5 }
  6. })

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/83307873

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。