Проверял Mongoose и относительно новый метод заполнения. Кажется, что он отлично работает при заполнении от ребенка до родителя следующим образом:Mongoose Populate Child ref возвращает нулевой массив
var Comment = new Schema({
Message: { type: String }
User: { type: ObjectId, ref: 'User' }
});
var User = new Schema({
Username: { type: String }
Comments: [{ type: ObjectId, ref: 'Comment' }]
});
Следующие работы, как ожидалось.
Comment.find({}).populate({ path: 'User' }).exec(function (err, comments) {
if(err) handle(callback);
// no error do something with comments/user.
// this works fine and populates the user perfectly for each comment.
});
User.findOne({ Username: "some username"}).populate('Comments').exec(function (err, user) {
if(err) handle(callback);
// this throws no errors however the Comments array is null.
// if I call this without populate I can see the ref ObjectIds in the array.
});
Тот факт, что ObjectIds видны без вызова заселить на модели пользователя/схемы и тот факт, что я могу заселить просто отлично от бокового ребенка исх делает вид, что конфигурация не правильна пока нет радости.
Вышеупомянутые схемы были закорочены так, чтобы не опубликовать длинный список кодов (мне это не нравится !!!). Надеюсь, я пропустил что-то простое.
Вы пробовали некапитализировать название пути? Очень маловероятно, что это проблема, но заглавные имена путей не являются идиоматическими, и вполне возможно, что мангуста понижает их где-то как часть процесса нормализации. Просто хватайтесь за соломинку здесь, кроме того, ваш пример - учебник. – numbers1311407
Что касается учебника, то это то, что я думаю, что оно заторможено. Должно быть, что-то глупое. Мне нравятся объекты/реквизиты, когда они представляют тип (.net парень так, как класс), чтобы быть кепкой, просто для согласованности. может быть прав. Я попробую другой случай по свойствам ref. Избавьтесь от этого. – origin1tech
нет кубиков в нижнем регистре ... – origin1tech