MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Накарайте $elemMatch (проекция) да върне всички обекти, които отговарят на критериите

За да върнете множество поддокументи, ще трябва да използвате рамката за агрегиране. Това ще върне всички поддокументи, които търсите:

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

Можете да правите различни неща, за да получите различен изход, но това ще върне:

{
    "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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групиране по специфичен елемент от масив с рамка за агрегиране mongo

  2. Автоматизация и управление на бази данни с отворен код в облака - обявяване на ClusterControl 1.6

  3. Spring Boot и как да конфигурирам подробности за връзката с MongoDB?

  4. java.lang.IncompatibleClassChangeError:Внедряване на клас Mongo

  5. Препратки към документ Mongoose с връзка „едно към много“.