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

implementace mongodb different() v Meteoru na serveru?

Dobře, po nějakém kopání v kódu a uvědomění si, že mongo lib obsahuje nativní implementace všech potřebných metod, jsem znovu použil řešení agregace() z https://github.com/meteor/meteor/pull/644

Přímé změny a překlad do coffeescriptu poskytuje následující úryvek, který lze vložit do kódu na straně serveru:

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]

Nevýhodou je, že to musíte definovat pro každou novou kolekci, ale to je docela jednoduché opravit dalším hackem přes _.extend nebo tak nějak...

PS Nyní je to také chytrý balíček - mrt add mongodb-aggregation



  1. Nelze vyřešit soubor sestavení nebo metadat systému Windows 'System.Data.dll'

  2. Nastavení MongoDB s node.js:Chyba:Nepodařilo se připojit k [localhost:27017]

  3. Jak odstranit spoustu sbírek mongodb najednou?

  4. MongoDB vám pomůže s doporučeními