sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo aggregering vs Java for loop og ydeevne

Med aggregation udføres hele forespørgslen som en enkelt proces på MongoDB-serveren - applikationsprogrammet henter resultatmarkøren fra serveren.

Med Java-program får du også en markør fra databaseserveren som input til behandlingen i applikationen. Svarmarkøren fra serveren vil være et større sæt data og vil bruge mere netværksbåndbredde. Og så er der behandling i ansøgningsprogrammet, og dette tilføjer flere trin til at fuldføre forespørgslen.

Jeg tror, ​​at aggregeringsmuligheden er et bedre valg - da al behandling (den indledende match og filtrering af arrayet) sker på databaseserveren som en enkelt proces.

Bemærk også, at de aggregeringsforespørgselstrin, du havde sendt, kan udføres på en effektiv måde. I stedet for flere trin (2, 3, 4 og 5) kan du udføre disse operationer i to trin - brug et $project med $map på det ydre array og derefter $filter på det indre array og derefter $filter det ydre array.

Sammenlægningen:

db.test.aggregate( [
  { 
      $addFields: { 
          Field2: { 
              $map: {
                   input: "$Field2",
                      as: "fld2",
                      in: {
                           Field3: "$$fld2.Field3",
                           Field4: { 
                               $filter: {
                                   input: "$$fld2.Field4",
                                      as: "fld4",
                                    cond: {  $eq: [ "$$fld4.id", "123" ] }
                               }
                           }
                       }
                 } 
          }
      }
  },
  { 
      $addFields: { 
          Field2: { 
              $filter: {
                   input: "$Field2",
                      as: "f2",
                    cond: {  $gt: [ { $size: "$$f2.Field4" }, 0 ] }
              }
          }
      }
  },
] )


  1. Mongo DB find efter feltnavn med en hvilken som helst værdi

  2. MongoDB $sort

  3. Hvad er forskellen mellem MongoDB Atlas og MongoDB Atlas til AWS

  4. Django kan ikke oprette forbindelse til mongoDB atlas