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

mongodb aggregat $lookup vs find og populate

Nå, der er ingen måde $lookup på ville være hurtigere end at have listen over kommentar-id'erne på det faktiske videoobjekt. Jeg mener, du skal lave en whole other request til mongo for at få dem nu. Så ydelsesmæssigt ville opslaget naturligvis tilføje tid. Det antager, at du ikke bruger mongoose populate at "konvertere" disse kommentar-id'er til de refererede objekter.

Hvis du derefter fjerner kommentarerne fra videoen (såvel som den faktiske optællingsrekvisit) og laver opslag er vejen at gå. Da du matcher med det samme i din arg og derefter laver et simpelt lookup Jeg kan ikke se, hvordan dette ville være en flaskehals for dig. Du kan også optimere/ændre/justere din aggregering via forklar osv.

Dit videoskema ville være ret rent på den måde:

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. Sådan bruger du mongoimport til at importere csv

  2. Brug af .sort med PyMongo

  3. Mongoose befolker vs objektnesting

  4. Hvorfor kaster PyMongo AutoReconnect?