mongoose的populate能不能多重进行?
发布于 10 年前 作者 insideyiqi 8504 次浏览 最后一次编辑是 8 年前

比如有如下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年前的帖子

回到顶部