sql >> データベース >  >> NoSQL >> MongoDB

サーバー上のMeteorでのmongodbdistinct()の実装?

    コードを掘り下げて、mongo libに必要なすべてのメソッドのネイティブ実装が含まれていることに気付いた後、 https://github.com/meteor/meteor/pull/644

    簡単な変更とcoffeescriptへの翻訳により、サーバー側のコードに入れる次のスニペットが得られます。

    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]
    

    欠点は、新しいコレクションごとに定義する必要があることですが、_。extendまたは私が推測する何かを介して別のハックで修正するのは非常に簡単です...

    PSこれもスマートパッケージになりました-mrt add mongodb-aggregation



    1. Morphia / MongoDB:@Embeddedオブジェクトから埋め込みオブジェクトにアクセスする

    2. XMLデータをmongodbコレクションに保存する

    3. MongoDBを使用してリレーショナルデータベースを作成できますか?

    4. MongoDBレプリカセットを開始できません:さまざまなエラー