sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb samla $lookup vs hitta och fylla

Det finns inget sätt $lookup skulle vara snabbare än att ha listan över kommentars-id:n på det faktiska videoobjektet. Jag menar att du måste göra en whole other request till mongo för att få dem nu. Så prestandamässigt skulle uppslagningen uppenbarligen lägga till tid. Det antar att du inte använder mongoose populate för att "konvertera" dessa kommentars-id:n till de refererade objekten.

Om du sedan tar bort kommentarerna från videon (liksom den faktiska räkningen) och gör uppslagningen är vägen att gå. Eftersom du matchar direkt i din arg och sedan gör en enkel lookup Jag förstår inte hur detta skulle vara en flaskhals för dig. Du kan också optimera/ändra/justera din aggregering genom att förklara etc.

Ditt videoschema skulle vara ganska rent på det sättet:

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. Senaste posten efter datum för varje artikel mongodb-grupp

  2. JasperReports Library och MongoDB

  3. Projekt som kapslat dokument i vårmongo

  4. Konvertera BSON Type ObjectId till JSON (lagring i Mongodb) -Java