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

Pymongo намира стойност в поддокументи

Отговорът, публикуван от @AnthonyWinzlet, има недостатъка, че трябва да премине през всички документи в потребителската колекция и да извърши $lookup s, което е сравнително скъпо. Така че в зависимост от размера на вашите Users колекция може да е по-бързо да направите това:

  1. Поставете индекс на users.pet и users.car :db.users.createIndex({pet: 1, car: 1})
  2. Поставете индекс на cars.model :db.cars.createIndex({model: 1})
  3. Поставете индекс на pets.name :db.pets.createIndex({name: 1})

Тогава можете просто да направите това:

  1. Вземете списъка с всички съответстващи "Tesla" автомобили:db.cars.find({model: "Tesla"})
  2. Вземете списъка с всички съвпадащи "Mickey" домашни любимци:db.pets.find({name: "Mickey"})
  3. Намерете потребителите, които ви интересуват:db.users.find({car: { $in: [<ids from cars query>] }, pet: { $in: [<ids from pets query>] }})

Това е доста лесно за четене и разбиране, освен това и трите заявки са напълно покрити от индекси, така че може да се очаква да бъдат възможно най-бързи.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вмъкнете MongoDB документ с React.js

  2. Ред на събитията за уеб кукички в лента

  3. Намерете последния запис за всеки ден

  4. Mongoose:Не може да извлече файлови документи от .chunk колекция без полето за данни

  5. Сравнителен анализ на MongoDB – повишаване на производителността на NoSQL