0

How can I get only second document, that have child {"name": "Harry", "age": 20}.

I tried query db.items.find({"children.name": "Harry", "children.age": 20}), but it searches for single field match instead of both in children

[
  {
    "children": [
      {
        "name": "Harry",
        "age": 50
      },
      {
        "name": "Dmitry",
        "age": 20
      }
    ]
  },
  {
    "children": [
      {
        "name": "Harry",
        "age": 20
      }
    ]
  }
]
AidOnline01
  • 643
  • 6
  • 18

1 Answers1

0
db.items.aggregate([
    {
        $match:
        {
            "children":
            {
                $elemMatch:
                {
                    "name": "Harry",
                    "age": 20
                }
            }
        }
    }
])
barrypicker
  • 9,050
  • 8
  • 59
  • 75