MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie filtert und ordnet man ein Array von Dokumenten in einer MongoDB-Abfrage zu?

Sie können den $filter umschließen Ausdruck innerhalb von $map um die Ausgabewerte zuzuordnen.

db.people.aggregate([
  {
    "$project": {
      "name": 1,
      "age": 1,
      "hobbies": {
        "$map": {
          "input": {
            "$filter": {
              "input": "$hobbies",
              "as": "hobbyf",
              "cond": "$$hobbyf.regular"
            }
          },
          "as": "hobbym",
          "in": {
            "name": "$$hobbym.name",
            "type": "$$hobbym.type"
          }
        }
      }
    }
  }
])