MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zapytanie MongoDB na wypełnionych polach

Odpowiedzią jest zmiana schematu.

Wpadłeś w pułapkę, którą wielu programistów ma przed sobą, kiedy wkraczają do tworzenia baz danych dokumentów z historii używania relacyjnych baz danych:MongoDB nie jest relacyjną bazą danych i nie powinno być traktowane jak jedna.

Musisz przestać myśleć o kluczach obcych i idealnie znormalizowanych danych, a zamiast tego utrzymywać każdy dokument tak samodzielny, jak to możliwe, myśląc o tym, jak najlepiej osadzić odpowiednie powiązane dane w swoich dokumentach.

Nie oznacza to, że nie możesz też utrzymywać skojarzeń. Może to oznaczać strukturę taką jak ta, w której umieszczasz tylko niezbędne szczegóły i w razie potrzeby wysyłasz zapytanie o pełny rekord:

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

  // ... other fields
});

Ponowne przemyślenie strategii umieszczania na stronie znacznie uprość zapytania i ogranicz liczbę zapytań do minimum. populate szybko przyspieszy Twoje zliczanie, a wraz ze wzrostem zestawu danych najprawdopodobniej stanie się to problemem.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB — Zapytanie o ostatni element tablicy?

  2. Mongoose JS findOne zawsze zwraca wartość null

  3. Jak używać MongoDB z obietnicami w Node.js?

  4. Eksportuj kolekcję MongoDB do pliku JSON

  5. mongodb zapytania zarówno z AND i OR