, поэтому я был на нем как 4 часа, прочитал документацию несколько раз и все еще не мог понять мою проблему. Я пытаюсь сделать простой populate() для моей модели. У меня есть модель пользователя и модель магазина. Пользователь имеет массив favoriteStores, который содержит _id магазинов. Я ищу, что этот массив будет заполнен данными магазина.Mongoose populate() возвращает пустой массив
user.model
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var UserSchema = new Schema({
username: String,
name: {first: String, last: String},
favoriteStores: [{type: Schema.Types.ObjectId, ref: 'Store'}],
modifiedOn: {type: Date, default: Date.now},
createdOn: Date,
lastLogin: Date
});
UserSchema.statics.getFavoriteStores = function (userId, callback) {
this
.findById(userId)
.populate('favoriteStores')
.exec(function (err, stores) {
callback(err, stores);
});
}
И еще один файл:
store.model
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var StoreSchema = new Schema({
name: String,
route: String,
tagline: String,
logo: String
});
module.exports = mongoose.model('Store', StoreSchema);
После запуска этого я получаю:
{
"_id": "556dc40b44f14c0c252c5604",
"username": "adiv.rulez",
"__v": 0,
"modifiedOn": "2015-06-02T14:56:11.074Z",
"favoriteStores": [],
"name": {
"first": "Adiv",
"last": "Ohayon"
}
}
В favoriteStores есть пусто, даже ты gh, когда я просто делаю покупки в магазинах без заполнения, он отображает _id в магазине.
Любая помощь очень ценится! Спасибо;)
UPDATE После использования deepPopulate plugin магически неподвижных его. Я предполагаю, что проблема связана с вложением userSchema. Все еще не уверен, что проблема была в точности, но по крайней мере она исправлена.
Вы загрузили модуль «store.model» по крайней мере один раз, где-то в вашем коде, перед вызовом 'функцию getFavoriteStores'? Если нет, модель магазина не будет зарегистрирована в мангусте, и заполнение не удастся. –
@BrianShamblen Да, я попробовал добавить var Store = require ('../ store/store.model'); как в модели, так и в контроллере. Я все еще что-то пропустил в отношении регистрации модели магазина? –
Какую версию мангуста вы используете? –