有这样两张表
代码语言: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 }
})