猫鼬不像文档说的那样投影

时间:2018-11-04 05:30:48

标签: mongodb mongoose

我遇到了一些麻烦-尝试使用findOne返回嵌套数组

具有这样的模型

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

有人可以告诉我为什么未指定猫鼬findOne返回_id字段吗?

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

    const query = {
        '_id': id
    };

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

}

这将返回

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

当我期望

[1,2,3]

我为这个问题的突然发音表示歉意-我只是在这片刻之际,无法做出正面或反面的结论。

1 个答案:

答案 0 :(得分:1)

_id始终默认返回,您必须将其从查询中排除。

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

    const query = {
        '_id': id
    };

    User.findOne( query, { studies: 1, _id: 0 }, callback );
}