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
  • 712
  • 7
  • 19

1 Answers1

0
db.items.aggregate([
    {
        $match:
        {
            "children":
            {
                $elemMatch:
                {
                    "name": "Harry",
                    "age": 20
                }
            }
        }
    }
])
barrypicker
  • 9,740
  • 11
  • 65
  • 79