node.jsはmongooseの集計関数を呼び出します


次の例が正常に実行されると、mongodbのテーブルがテストされ、文字「s」が自動的に追加されます。これは落とし穴です。

 

 var mongoose = require( "mongoose");  

  mongoose.connect( "mongodb://192.168.1.17:27017 / test"、function(e){
  if(e)
      console.log(e.message);
  
  console.log( "connect ok!");
  
});


  var Schema =
  mongoose.Schema ; //モデルを作成します varuserScheMa = new Schema({
    carrier:String、
    lang:String、
    impCount:Number、
    clickCount:Number、

  }); //新しいモデルが定義されていますが、このモデルも定義されていますtest_tableコレクションに関連付けられていませんvardata


= mongoose.model( 'test_table'、userScheMa); // test_tableコレクションに


関連付けられています exports.query = function(req、res){
var key1 = {carrier: "$ carrier"、lang : "$ lang"}
var query1 = {'$ or':[{'impCount':{'$ gt':3}}、 {'impCount':{'$ lt':16}}]}
var sort1 = {os:-1}
var limit1 = 3
var skip1 = 0


data.aggregate(
[
       {$ match:query1}、
       {$ group:{_ id:key1、ImpCount:{$ sum: "$ impCount"}、 ClickCount:{$ sum: "$ clickCount"}}}、
       {$ sort:sort1}、
       {$ limit:limit1}、
       {$ skip:skip1}
]、function(e、docs)
{
   if(e)
       console.log (e.message);
   res.send(JSON.stringify(docs));
}
);  
};





おすすめ

転載: blog.csdn.net/zgb40302/article/details/50404872