Это мои схемы (тема является родителем и содержит список «Мысль-х):Populate Вложенного массив в мангуст - Node.js
var TopicSchema = new mongoose.Schema({
title: { type: String, unique: true },
category: String,
thoughts: [ThoughtSchema]
}, {
timestamps: true,
toObject: {virtuals: true},
toJSON: {virtuals: true}
});
var ThoughtSchema = new mongoose.Schema({
text: String,
author: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
votes:[{
_id:false,
voter: {type: mongoose.Schema.Types.ObjectId, ref: 'User'},
up: Boolean,
date: {type: Date, default: Date.now}
}]
}, {
timestamps: true,
toObject: {virtuals: true},
toJSON: {virtuals: true}
});
....
Я пытаюсь прочитать автор Замысла и изменить ПОЛУЧИТЬ тему апи например:
...
var cursor = Topic.find(query).populate({
path: 'thoughts',
populate: {
path: 'author',
model: 'User'
}
}).sort({popularity : -1, date: -1});
return cursor.exec()
.then(respondWithResult(res))
.catch(handleError(res));
...
Но автор пуст. Я также не получаю ошибок в консоли. Что здесь не так?
Редактировать: На самом деле мне не нужна мысль как схема, у нее нет собственной коллекции в базе данных. Он будет сохранен в разделах. Но для того, чтобы использовать опцию timestamps с мыслями, мне нужно было извлечь ее содержимое в новую локальную схему ThoughtSchema. Но я теперь определил содержимое мыслиSchema непосредственно в массиве мыслей тем, но он все еще не работает.
Редактировать 2: Это объект-указатель перед его выполнением. К сожалению, я не могу отлаживать в WebStorm, это скриншот из инспектора узла:
@ Theodore ответ выглядит правильно для меня: что такое контент 'query'? У вас есть 'select' в нем? – pasine
Я загрузил скриншот содержимого объекта курсора перед его исполнением – akcasoy