猫鼬从模型中的数组中找到对象

时间:2020-10-09 13:36:32

标签: node.js arrays mongoose find

我遇到了一些困难,因为我固执己见,没有为选择做一个单独的模型。因此,我有一个问题模型,该模型具有用于选择的嵌入式架构,其中包含选择的数组,每个对象都有自己的ID。我只想返回具有给定id的选项,因此经过多次尝试后,我使用了

Question.findOne({"choices._id": choiceId})
        .select('choices')

但是它返回了我在数组中具有该ID的问题,以及其他选择。例如,我正在寻找ID为5f7f05f8aec5103db6c15534的选择,但它返回所有选择:

{
    "_id": "5f7f05f8aec5103db6c15532",
    "choices": [
        {
            "isCorrect": false,
            "_id": "5f7f05f8aec5103db6c15534",
            "content": "pe asta"
        },
        {
            "isCorrect": true,
            "_id": "5f7f05f8aec5103db6c15533",
            "content": "pe asta update 2"
        }
    ]
}

是否有可能在具有该ID的数组中返回ONLY对象?

1 个答案:

答案 0 :(得分:0)

您可以尝试一下

Question.findOne({ 'choices._id': { $elemMatch: { _id: choiceId } } }, function (err, question) {
    // your code goes here
});