sql >> Databáze >  >> NoSQL >> MongoDB

Aby $elemMatch (projekce) vrátil všechny objekty, které odpovídají kritériím

Chcete-li vrátit více vnořených dokumentů, budete muset použít agregační rámec. Tím se vrátí všechny vnořené dokumenty, které hledáte:

db.zip.aggregate(
  {$match: {zipcode: 63109}},
  {$unwind: "$students"},
  {$match: {"students.school": 102}}
)

Pro získání různého výstupu můžete dělat různé věci, ale toto se vrátí:

{
    "result" : [
        {
            "_id" : 1,
            "zipcode" : 63109,
            "students" : {
                "name" : "john",
                "school" : 102,
                "age" : 10
            }
        },
        {
            "_id" : 1,
            "zipcode" : 63109,
            "students" : {
                "name" : "jess",
                "school" : 102,
                "age" : 11
            }
        },
        {
            "_id" : 4,
            "zipcode" : 63109,
            "students" : {
                "name" : "barney",
                "school" : 102,
                "age" : 7
            }
        }
    ],
    "ok" : 1
}


  1. MongoDB třídí dokumenty podle prvků pole

  2. Správa dlouhotrvajících operací v MongoDB

  3. Jaký je výchozí časový limit relace a jak jej nakonfigurovat při použití jarní relace s Redis jako backend

  4. MongoDb - Změňte typ z Int na Double