mongodb 自学笔记
2016-05-27 17:15
531 查看
连接数据库
mongo.exe test
设置访问限制后连接
mongo.exe -u root -p test
设置访问限制
db.addUser("root","111111");
mongo.exe auth;
创建集合(数据库)
db.createCollection("mydatabase",{size:1000000,max:100});
切换数据库
use mydatabase;
创建表(student)
db.student.save({_id:1,classid:1,age:18,name:"little1"},love:["football","swing","cmpgame"]);
db.student.save({_id:2,classid:2,age:19,name:"little2"},love:["play"]);
db.student.save({_id:3,classid:2,age:20,name:"little3"});
db.student.save({_id:4,classid:1,age:21,name:"little4"});
db.student.save({_id:5,classid:1,age:22,name:"little5",opt:"woshisheia"});
db.student.save({_id:6,classid:2,age:23,name:"23little4"});
查询:
db.student.find();
//从第二条查寻,查出三条
db.student.find().skip(1).limit(3);
//查询出name为little1的数据
db.student.find({name:"little1"});
//查询出19<age<=21的数据
db.student.find({age:{$gt:19,$lte:21}});
//查询出age为奇数的数据(对2求余为1即为奇数)
db.student.find({age:{$mod:[2,1]}});
//查询出存在opt字段的数据
db.student.find({opt:{$exists:true}});
//查询出不存在opt字段的数据
db.student.find({opt:{$exists:false}});
//查询出name不为little2的数据
db.student.find({name:{$ne:"little2"}});
//查询出age为16,18,19的数据
db.student.find({age:{$in:[16,18,19]}});
//查询出age不为16,18,19的数据
db.student.find({age:{$nin:[16,18,19]}});
//查询出love有三个的数据
db.student.find({love:{$size:3}});
//查询出name不是以litt开头的数据
db.student.find({name:{$not:/^litt.*/}});
//查询age>20的数据
db.student.find({age:{$gt:20}});
db.student.find({$where:"this.age>20"});
db.student.find("this.age>20");
var f = function(){return this.age>20};
db.student.find(f);
//按age升序
db.student.find().sort({age:1});
//按age降序
db.student.find().sort({age:-1});
//查询数据条数
db.student.find().count();
删除:
//删除age为20的数据
db.student.remove({age:20});
//删除表
db.student.drop();
存储过程:
db.system.js.save({_id:"mypro",value:function(){
var total = 0;
var arr = db.student.find().toArray();
for(var i=arr.length-1;i>=0;i--){
total += arr[i].age;
}
return total;
}});
//查询存储过程
db.system.js.find();
//执行存储过程
db.eval("mypro()");
分组统计(MapReduce):
var mapfun = function(){emit(this.classid,1)}
var reducefun = function(key, values){
var x = 0;
values.forEach(function(v){x+=v});
return x;
}
var finafun = function(key, value){
return {classid:key,count:value};
}
res = db.runCommand({
mapreduce:"student",
map:mapfun,
reduce:reducefun,
out:student_res,
finalize:finafun
//可加入条件
//query:{age:{$gt:19}}
});
//查询统计结果(分班级统计人数)
db.student_res.find();
mongo.exe test
设置访问限制后连接
mongo.exe -u root -p test
设置访问限制
db.addUser("root","111111");
mongo.exe auth;
创建集合(数据库)
db.createCollection("mydatabase",{size:1000000,max:100});
切换数据库
use mydatabase;
创建表(student)
db.student.save({_id:1,classid:1,age:18,name:"little1"},love:["football","swing","cmpgame"]);
db.student.save({_id:2,classid:2,age:19,name:"little2"},love:["play"]);
db.student.save({_id:3,classid:2,age:20,name:"little3"});
db.student.save({_id:4,classid:1,age:21,name:"little4"});
db.student.save({_id:5,classid:1,age:22,name:"little5",opt:"woshisheia"});
db.student.save({_id:6,classid:2,age:23,name:"23little4"});
查询:
db.student.find();
//从第二条查寻,查出三条
db.student.find().skip(1).limit(3);
//查询出name为little1的数据
db.student.find({name:"little1"});
//查询出19<age<=21的数据
db.student.find({age:{$gt:19,$lte:21}});
//查询出age为奇数的数据(对2求余为1即为奇数)
db.student.find({age:{$mod:[2,1]}});
//查询出存在opt字段的数据
db.student.find({opt:{$exists:true}});
//查询出不存在opt字段的数据
db.student.find({opt:{$exists:false}});
//查询出name不为little2的数据
db.student.find({name:{$ne:"little2"}});
//查询出age为16,18,19的数据
db.student.find({age:{$in:[16,18,19]}});
//查询出age不为16,18,19的数据
db.student.find({age:{$nin:[16,18,19]}});
//查询出love有三个的数据
db.student.find({love:{$size:3}});
//查询出name不是以litt开头的数据
db.student.find({name:{$not:/^litt.*/}});
//查询age>20的数据
db.student.find({age:{$gt:20}});
db.student.find({$where:"this.age>20"});
db.student.find("this.age>20");
var f = function(){return this.age>20};
db.student.find(f);
//按age升序
db.student.find().sort({age:1});
//按age降序
db.student.find().sort({age:-1});
//查询数据条数
db.student.find().count();
删除:
//删除age为20的数据
db.student.remove({age:20});
//删除表
db.student.drop();
存储过程:
db.system.js.save({_id:"mypro",value:function(){
var total = 0;
var arr = db.student.find().toArray();
for(var i=arr.length-1;i>=0;i--){
total += arr[i].age;
}
return total;
}});
//查询存储过程
db.system.js.find();
//执行存储过程
db.eval("mypro()");
分组统计(MapReduce):
var mapfun = function(){emit(this.classid,1)}
var reducefun = function(key, values){
var x = 0;
values.forEach(function(v){x+=v});
return x;
}
var finafun = function(key, value){
return {classid:key,count:value};
}
res = db.runCommand({
mapreduce:"student",
map:mapfun,
reduce:reducefun,
out:student_res,
finalize:finafun
//可加入条件
//query:{age:{$gt:19}}
});
//查询统计结果(分班级统计人数)
db.student_res.find();
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- Android之获取手机上的图片和视频缩略图thumbnails
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 数据库链接字符串查询网站
- 如何在 Ubuntu 上安装 MongoDB
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 信息安全聚合 Sec-News 的重构之路
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页