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

Meteor:opublikuj 2 różne projekcje elementów tablicy

Zbadałem różne podejścia. Problem można rozwiązać indywidualnie dla każdego przypadku, starannie dobierając pola i pamiętając o zamówieniu subskrypcji, ale te rozwiązania są marne i opierają się na nieudokumentowanych arbitralnych warunkach.

Jedynym prawdziwym, ogólnym rozwiązaniem jest wirtualna kolekcja . Najprostszym przypadkiem jest po prostu opublikowanie kursora pod inną nazwą kolekcji po stronie klienta. Na przykład:

function publishVirtual(sub, name, cursor) {
  var observer = cursor.observeChanges({
    added  : function(id, fields) { sub.added(name, id, fields) },
    changed: function(id, fields) { sub.changed(name, id, fields) },
    removed: function(id)         { sub.remove(name, id) }
  })

  sub.onStop(function() {
    observer.stop() // important. Otherwise, it keeps running forever
  })
}

A potem, w swojej publikacji, zamiast zwracać cursor :

var cursor = Users.find()
publishVirtual(this, 'virtualUsers', cursor)
this.ready()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy bazy danych zorientowane na dokumenty mają zastąpić relacyjne bazy danych?

  2. Nie udało się znaleźć źródła danych:com.mongodb.spark.sql.DefaultSource

  3. Jaki jest odpowiednik metody AbstractMongoEventListener dla mongooperacji updateMulti?

  4. Jak uzyskać wyniki polecenia mongo w pliku płaskim?

  5. MongoDB $orderBy