2016-05-06 6 views
0
mr = db.runCommand({ 
    "mapreduce" : "company", 
    "map" : function() { for (var key in this) { emit(key, null); } }, 
    "reduce" : function(key, stuff) { return null; }, 
    "out": "company" + "_keys" 
}) 

db[mr.result].distinct("_id") 

これは私がmongodbからキーを取得するために使用しているクエリですが、このクエリを帆jsコードに変換するにはどうすればよいですか?誰も私を助けることができますか?帆を使ってmongodbキーを取得するjs

答えて

1

メソッドをモデルに使用して、基になるMongoコレクションにアクセスし、mapReduceのような生のMongoクエリを実行します。以下は、このことを示していますため

Company.native(function(err, companyCollection) { 
    if (err) return res.serverError(err); 

    // Map function 
    var map = function() { for (var key in this) { emit(key, null); } }; 
    // Reduce function 
    var reduce = function() { }; 
    // Other options 
    var options = {out: {replace : 'company_keys'}}; 

    // Peform the map reduce 
    // Mapreduce returns the company_keys collection with the results 
    companyCollection.mapReduce(map, reduce, options, function(err, keysCollection) { 
     // Perform a distinct query against the _id field of the keysCollection 
     keysCollection.distinct("_id", function(err, results) { 
      if (err) return res.serverError(err); 
      console.log(results); // returns a list of the keys ['key1', 'key2', ...] 

      return res.ok(results);   
     }); 
    }); 
}); 
+0

おかげで解決#chridamを与えたが、このコードを使用して、私はエラーを取得しています:「non_object_property_call メッセージを:未定義の 『明確な』メソッドを呼び出すことはできませんか」? – sriteja

+0

@sriteja私の回答を更新しました – chridam

+0

chridamがうまくいきました – sriteja

関連する問題