var conn = new Mongo("localhost:27017");
var db = conn.getDB("f26");//连接或创建数据库
// print(db.getName());
// db.dropDatabase();//删除数据库
db.createCollection("students");//创建一个集合
var students = db.getCollection("students");//获取集合
// print(students);
// students.drop();//删除集合
// students.insert({//新增文档
// name: "xiaozhangxueyou",
// age: 25
// });
//students.remove({});//删除所有文档
// var cursor = students.find();//查看该集合所有文档,cursor是游标(理解为数组的引用)
// cursor.forEach(function(obj) {
// printjson(obj);
// });
// students.update({name: "wangwu"}, {$inc: {age: 1}}, false, true);
// var cursor = students.find({name: "zhangsan"}, {name: true, age: true});//查看该集合所有文档,cursor是游标(理解为数组的引用)
// cursor.toArray().forEach(function(obj) {
// printjson(obj);
// });
// var count = students.count();
// print(count);
//students集合,先find找出所有集合,再好排序,最后返回给cursor
// var cursor = students.find({name: {$regex: /^[a-z]{0,}zhang[a-z]{0,}$/}}).sort({age: -1});
// cursor.forEach(function(obj) {
// printjson(obj);
// });
// students.find().limit(3).forEach(function(obj) {
// printjson(obj);
// });
// students.find().skip(3).limit(3).forEach(function(obj) {
// printjson(obj);
// });
// students.find().forEach(function(stu) {
// printjson(stu);
// });
// var cursor = students.distinct("name");
// cursor.forEach(function(obj) {
// print(obj);
// });
// students.insert({//新增文档
// name: "xiaozhangxueyou",
// age: 25,
// className: "f26"
// });
// students.insert({//新增文档
// name: "zhangxueyou",
// age: 60,
// className: "f26"
// });
// students.insert({//新增文档
// name: "liudehua",
// age: 50,
// className: "f25"
// });
// students.insert({//新增文档
// name: "chenguanxi",
// age: 35,
// className: "f25"
// });
// students.insert({//新增文档
// name: "kezhendong",
// age: 23,
// className: "f26"
// });
// var cursor = students.group({
// key: {className: 1},
// initial: {amount: 0, avg: 0, totalAge: 0},//我要查询的对象属性
// reduce: function(obj, prev) {//prev是initial
// ++prev.amount;
// prev.totalAge += obj.age;
// },
// finalize: function(prev) {//最后一次reduce运行完毕,就会运行一次finalize
// prev.avg = prev.totalAge / prev.amount;
// }
// });
// cursor.forEach(function(obj) {
// printjson(obj);
// });
// students.insert({
// name: "lisi",
// age: 8
// });
// students.insert({
// name: "lisi",
// age: 28
// });
// students.insert({
// name: "zhangsan",
// age: 1
// });
// students.insert({
// name: "zhangsan",
// age: 28
// });
// students.find({
// $or:[
// {$and:[{name: "zhangsan"}, {age: {$lte: 5}}]},
// {$and:[{name: "lisi"}, {age: {$gte: 10}}]}
// ]
// }).forEach(function(obj) {
// printjson(obj);
// });
/*
maxAge: {$max: "$age"}中:
- maxAge是查询出来的对象的属性
- $max表示取最大值
- "$age"在$符号后边指定属性名称
*/
var cursor = students.aggregate([
{$match: {name: {$regex: /^.*$/}}},//aggregate查询
{$group: {_id: "$className", maxAge: {$max: "$age"}}}
]);
cursor.forEach(function(obj) {
printjson(obj);
});