MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mongodb agregacja $ lookup vs znajdź i wypełnij

Cóż, nie ma mowy, aby $lookup byłoby szybsze niż posiadanie listy identyfikatorów komentarzy w rzeczywistym obiekcie wideo. Mam na myśli, że musisz wykonać whole other request do mongo, aby je teraz zdobyć. Tak więc pod względem wydajności wyszukiwanie wydłużyłoby czas. To zakładając, że nie używasz mongoose populate aby "przekonwertować" te identyfikatory komentarzy na obiekty, do których się odwołują.

Jeśli następnie usuwasz komentarze z filmu (jak również rzeczywisty rekwizyt liczenia) i przeprowadzasz wyszukiwanie, jest to droga. Ponieważ dopasowujesz od razu w swoim arg, a następnie wykonujesz proste lookup Nie rozumiem, jak mogłoby to być dla Ciebie wąskim gardłem. Możesz także zoptymalizować/zmienić/dostroić swoją agregację wyjaśnić itp.

W ten sposób Twój schemat wideo byłby całkiem czysty:

const VideoSchema = new mongoose.Schema({
  caption: {
    type: String,
    trim: true,
    maxlength: 512,
    required: true,
  },
  owner: {
    type: mongoose.Schema.ObjectId,
    ref: 'User',
    required: true,
  },
  // some more fields
}, { timestamps: true });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Operacja aktualizacji Mongodb wewnątrz tablicy podrzędnej

  2. MongoDB count() undefined

  3. MongoDB php $in i $regex

  4. Czy muszę być administratorem, aby utworzyć nowego użytkownika w MongoDB?

  5. Jak najszybciej sprawdzić, kiedy dokonano ostatniej aktualizacji MongoDB?