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

mongodb aggregate $lookup срещу намиране и попълване

Е, няма начин $lookup би било по-бързо, отколкото списъкът с идентификатори на коментари върху действителния видео обект. Искам да кажа, че трябва да направите whole other request на mongo да ги вземе сега. Така че по отношение на производителността очевидно търсенето ще добави време. Това предполага, че не използвате mongoose populate за да „конвертирате“ тези идентификатори на коментари в посочените обекти.

Ако след това премахвате коментарите от видеоклипа (както и действителното преброяване) и извършвате търсене, това е правилният начин. Тъй като съпоставяте веднага във вашия аргумент и след това правите просто lookup Не виждам как това би било тясно място за вас. Също така можете да оптимизирате/промените/настроите вашето агрегиране чрез обяснете и т.н.

Вашата видео схема ще бъде доста чиста по този начин:

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. Как мога да $addToSet обект към масив и $sort също с помощта на MongoDB?

  2. MongoDB работи бавно при натоварване

  3. Как да предадете ObjectId от MongoDB в MVC.net

  4. Изчислете производна от първи ред с рамка за агрегиране на MongoDB

  5. Извикване на съхранена процедура чрез PHP в MongoDB