如何在猫鼬的嵌套对象中查询嵌套数组的ID?

时间:2020-08-18 03:55:00

标签: javascript node.js mongodb mongoose schema

这是我的经文模式

{
    "verses": [
        {
            "id": "111",
            "happy": [
                {
                    "id": "112",
                    "versePath": "Proverbs 15:13",
                    "content": "A glad heart makes a cheerful face, but by sorrow of heart the spirit is crushed"
                }
            ],
            sad: [
                {
                    id: 113,
                    versePath: "text",
                    content: "text"
                }
            ]
        }
    ]
}

我想查询以id查找每个对象。我尝试使用elemMatch进行此操作,但是没有用。

const verse = await Verses
    .find({ _id: id })
    .elemMatch("empathy", { _id: req.params.id, });

我也尝试使用聚合,但是它也不起作用。

const verse = await Verses.aggregate([
    { "$unwind": "$verses" },
    { "$match": { "verses._id": req.params.id } }
])

不起作用,我的意思是两次尝试都返回了一个空数组或整个json对象。 我希望我的结果返回每个嵌套对象 ID:112, versePath

0 个答案:

没有答案