下面的例子执行成功后,在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));
}
);
};