Mongoose: Jak zapytać o właściwość obiektu, do którego istnieje odwołanie?

Próbuję uzyskać listę dokumentów z mojej bazy danych na podstawie właściwości pod-dokumentu. Modele i schematy, których używam to:

var elementSchema = new mongoose.Schema({
    name: String,
    description: String,

    _story: { type: mongoose.Schema.Types.ObjectId, ref: 'Story' },

    date_created: Date,
    date_modified: Date,
};
var storySchema = new mongoose.Schema({
    title: {type: String, default: '', trim: true},
    isPrivate: {type: Boolean, default: false},
});

mongoose.model("Story", storySchema);
mongoose.model("Element", elementSchema);

Próbuję zdobyć wszystkie elementy, które należą do historii, która nie jest prywatna i według niektórych postów, które widziałem tutaj (1, 2, 3) rozwiązaniem byłoby użycie _story.isPrivate ze find. Obecnie to robię:

Element.find({'_story.isPrivate': false})
         .populate('_story')
         .exec(function(err, elements){
             if(err){
                 return next(err);
             }
             else if(elements.length > 0){
                 return res.send(elements);
             }
             else{
                 return res.send(404, {message: "No elements found"});
             }
});

Ale wynikiem jest zawsze pusty zbiór (zwraca 404). Bez warunku find zwraca wszystkie elementy i poprawnie wypełnia _story. Uaktywniłem również wyjście debugowania, aby zobaczyć wykonywane zapytania i otrzymałem to:

Mongoose: elements.find({ '_story.isPrivate': false }) { fields: undefined, safe: undefined }

Próbując to wykonać w MongoDB, nie otrzymuję żadnych wyników. Co tu może być nie tak?

Dzięki

questionAnswers(2)

yourAnswerToTheQuestion