node.js 调用 mongoose 的 aggregate 函数


下面的例子执行成功后,在mongodb中的表是tests ,自动加了一个字符“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;    //  创建模型
  var userScheMa = new Schema({
    carrier: String,
    lang : String,
    impCount : Number,
    clickCount: Number,

  }); //  定义了一个新的模型,但是此模式还未和test_table集合有关联


var data = 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
今日推荐