1
我试图使用节点& mongoose的填充方法在查询上的'连接'2集合。以下是我的架构设置:mongo mongoose填充子文档返回null
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var ShopSchema = new Schema({
ssss: { type: Schema.Types.ObjectId, required :true, ref: 'Stat' },
ratings: [RatingSchema]
});
var RatingSchema = new Schema({
stat: { type: Schema.Types.ObjectId, required :true, ref: 'Stat' }
}, {_id: false});
而且我已经安装了统计猫鼬模式,使查询工作没有错误(但结果不是我所期望的)。
我试图执行以下查询:
ShopSchema.statics.load = function(id, cb) {
this.findOne({
_id: id
}).populate('ssss', '_id stat_id').exec(cb);
};
mongoose.model('Shop', ShopSchema);
这给了我正确的结果和SSSS被正确引用。 结果是这样的。
"ssss":{"_id":"5406839ad5c5d9c5d47091f0","stat_id":1}
但是,下面的查询给了我错误的结果。
ShopSchema.statics.load = function(id, cb) {
this.findOne({
_id: id
}).populate('ratings.stat', '_id stat_id').exec(cb);
};
mongoose.model('Shop', ShopSchema);
这给了我所有结果的ratings.stat = null。有人能告诉我我做错了什么吗?谢谢。