mongoose的populate能不能多重进行?
比如有如下Schema
var Account = new Schema({
username: String,
password: String,
Email: String,
applyform: [{ type: ObjectId, ref: 'Applyform' }]
});
var Applyform = new Schema({
classid : [{ type: ObjectId, ref: 'Classinfo' }],
price: Number,
applydate: { type: Date, default: Date.now},
});
var Classinfo = new Schema({
classname: String,
createdate: { type: Date, default: Date.now }
});
我现在对Acount进行查找并populate
Account
.findOne({username: 'someone'})
.populate('applyform')
.exec(function (err, res) {
.....
})
结果res.applyform可以读到res.applyform.classid 但我想继续populate读到classname可以么?应该怎么继续populate?
6 回复
不支持,只能手工来处理
@DobbieYin 有个 mongoose-deep-populate 的插件可以用! mongoose-deep-populate
可以的,你去mongoose官网查,是在pop里传入object,继续往下pop,另外,pop的参数很多,很方便,不是单单的一个string 自豪地采用 CNodeJS ionic
Mongoose可以这样查的说
`` javascript
Schema .find({title:‘Cnodejs社区’}) .populate({ path: ‘User’, populate({ path: ‘Article’ }) }) .exec((err,resultData)=>{ // TODO }); ``
不好意思,才发现这是1年前的帖子