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

Implementacja mongodb differ() w Meteorze na serwerze?

Ok, po przekopaniu się przez kod i zrozumieniu, że mongo lib zawiera natywne implementacje wszystkich potrzebnych metod, ponownie użyłem rozwiązania agregacji() z https://github.com/meteor/meteor/pull/644

Proste zmiany i tłumaczenie na coffeescript dają następujący fragment kodu, który należy umieścić w kodzie po stronie serwera:

path = __meteor_bootstrap__.require("path")
MongoDB = __meteor_bootstrap__.require("mongodb")
Future = __meteor_bootstrap__.require(path.join("fibers", "future"))

myCollection = new Meteor.Collection "my_collection"

#hacky distinct() definition from https://github.com/meteor/meteor/pull/644
myCollection.distinct = (key)->
  future = new Future
  @find()._mongo.db.createCollection(@_name,(err,collection)=>
    future.throw err if err
    collection.distinct(key, (err,result)=>
      future.throw(err) if err
      future.ret([true,result])
      )
    )
  result = future.wait()
  throw result[1] if !result[0]
  result[1]

Minusem jest to, że musisz zdefiniować to dla każdej nowej kolekcji, ale całkiem łatwo jest to naprawić za pomocą innego hacka za pomocą _.extend lub czegoś, jak sądzę...

PS Jest to teraz także inteligentny pakiet - mrt add mongodb-aggregation



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wykonywanie funkcji niestandardowej na MongoDB przy użyciu Casbah/Scala

  2. Wstawianie obiektu momentjs do kolekcji Meteor

  3. MongoDB:Mapreduce:Reduce->Multiple jeszcze nieobsługiwane

  4. Czy MongoDB _id (ObjectId) jest generowany w porządku rosnącym?

  5. Otrzymuj powiadomienia o zmienionych dokumentach w mongodb