Doświadczam pewnej frustracji — próbuję zwrócić zagnieżdżoną tablicę za pomocą findOne

Z modelem, który wygląda tak

{
    _id: ObjectId,
    name: String,
    studies: []
}

Czy ktoś może mi powiedzieć, dlaczego mangusta findOne zwraca pole _id, gdy go nie określiłem?

module.exports.getStudies = function( id, callback ) {

    const query = {
        '_id': id
    };

    User.findOne( query, 'studies', callback );

}

To jest powracające

{
    "studies": [1,2,3],
    "_id": "5a9ccf7deccccc36d88b36ac"
}

Kiedy spodziewam się

[1,2,3]

Przepraszam za nagły ton tego pytania - po prostu jestem w tym od jakiegoś czasu i nie mogę tego zrobić.

0
j-p 4 listopad 2018, 08:30

1 odpowiedź

Najlepsza odpowiedź

_id zawsze zwraca domyślnie, trzeba go wykluczyć z zapytania.

module.exports.getStudies = function( id, callback ) {

    const query = {
        '_id': id
    };

    User.findOne( query, { studies: 1, _id: 0 }, callback );
}
1
Asaf Aviv 4 listopad 2018, 08:56