sql >> Databáze >  >> NoSQL >> MongoDB

Dotaz MongoDB na vyplněná pole

Řešením je změnit schéma.

Spadli jste do pasti, kterou má před vámi mnoho vývojářů, když vstoupili do vývoje databází dokumentů z historie používání relačních databází:MongoDB není relační databáze a nemělo by se s ní tak zacházet.

Musíte přestat přemýšlet o cizích klíčích a dokonale normalizovaných datech a místo toho ponechat každý dokument co možná nejsamostatnější a přemýšlet o tom, jak nejlépe vložit relevantní přidružená data do vašich dokumentů.

To neznamená, že nemůžete udržovat také asociace. Může to znamenat strukturu podobnou této, do které vložíte pouze nezbytné podrobnosti a v případě potřeby se dotážete na celý záznam:

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

  // ... other fields
});

Přehodnocení strategie vkládání bude skvěle zjednodušte své dotazy a omezte počet dotazů na minimum. populate rychle vybuchne váš počet a jak bude vaše datová sada narůstat, velmi pravděpodobně to bude problém.



  1. Monitorování databáze pomocí ClusterControl

  2. Aktualizace Mongoose bez zpětného volání

  3. Způsobeno:java.lang.IllegalArgumentException:CONTAINING (1):[IsConifying, Containing, Contains] není podporováno pro odvození dotazu redis - Redis

  4. vytvářet a aktualizovat více dokumentů MongoDB v jednom volání