Questi sono i miei schemi (topic è genitore e contiene un elenco di 'pensiero di):Popola array nidificato in mangusta - 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}
});
....
Sto cercando di leggere l'autore del pensiero e cambiare la mia get topic api così:
...
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));
...
Ma l'autore è nullo .. anche io non ho alcun errore nella console. Cosa c'è di sbagliato qui?
Modifica: in realtà non ho bisogno del Pensiero come schema, non ha una propria collezione nel database. Sarà salvato in argomenti. Ma al fine di utilizzare l'opzione timestamp con pensieri, avevo bisogno di estrarne il contenuto in un nuovo schema locale ThoughtSchema. Ma ora ho definito i contenuti del pensieroSchema direttamente nella serie di argomenti, non funziona ancora.
Edit2: questo è l'oggetto cursore prima dell'esecuzione. Purtroppo non posso eseguire il debug in WebStorm, questo è uno screenshot dal nodo ispettore:
@La risposta Theodore mi sembra corretta: qual è il contenuto di 'query'? Avete qualche 'select' in esso? – pasine
ho caricato uno screenshot del contenuto dell'oggetto del cursore appena prima che venga eseguito – akcasoy