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。有人能告訴我我做錯了什麼嗎?謝謝。