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

MongoDB заявка към попълнени полета

Отговорът е да промените вашата схема.

Попаднали сте в капана, който много разработчици имат пред вас, когато влизат в разработването на база данни за документи от история на използване на релационни бази данни:MongoDB не е релационна база данни и не трябва да се третира като такава.

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

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

var activitySchema = new mongoose.Schema({
  event: {
    _id: { type: ObjectId, ref: "Event" },
    name: String,
    private: String
  },

  // ... other fields
});

Преосмислянето на вашата стратегия за вграждане ще много опростете заявките си и сведете броя на заявките до минимум. populate бързо ще увеличи броя ви и с нарастването на набора ви от данни това много вероятно ще се превърне в проблем.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Запитване за документ и всички негови поддокументи, които съответстват на условие в mongodb (с помощта на spring)

  2. ECONNREFUSED грешка при свързване към mongodb от node.js

  3. MongoDB добавяне към полето за присъединяване на колекция от основното

  4. Как да върна само вложените документи на масив от всички документи

  5. db.collection не е функция, когато използвате MongoClient v3.0