如何使用猫鼬查询嵌套对象内部的对象数组?

时间:2020-11-12 21:22:08

标签: javascript node.js mongodb express mongoose

dbCollection= [
      {
        _id: "2632831628319231",
        text: 'xyz',
        data: {
          foo: [
            {  message:"Hello",status: 'notready' },
            { message:"Hello", status: 'notready' },
          ],
          bar: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],
          foo1: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],  
        },
      },
      {
        _id: "2632831628319231",
        text: 'stu',
        data: {
          abc: [
            {  message:"Hello",status: 'notready' },
            { message:"Hello", status: 'notready' },
          ],
          ghi: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],
        },
      },
    ];

我想查询所有包含就绪状态的对象。

在数据对象键foo,bar和abc内可以是任何东西。密钥名称在这里未知。

我希望所有具有至少一对状态键值的数据对象都准备就绪。

预期结果:

[{
        _id: "2632831628319231",
        text: 'xyz',
        data: {
          bar: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],
          foo1: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],
        },
      },{
        _id: "2632831628319231",
        text: 'stu',
        data: {
          ghi: [
            { message:"Hello", status: 'ready' },
            { message:"Hello", status: 'notready' },
          ],
        },
      },]

因此,我想通过使用猫鼬聚合或查找来获得此结果,但是我没有获得通过猫鼬解决此问题的适当方法,仅当前我正在查询数据并使用一些javascript方法来解决此问题。

0 个答案:

没有答案