mongodb的增删查改等常用操作

linux 登录  mongo 192.168.23.128:27017/zwy
//增加
 db.person.insert({name:"zzz",sex:"nan",age:"100"});
//循环批量插入
for(var i = 0 ; i < 100; i++) {
	db.person.insert({name:"zzz",sex:"nan",age:i});
}
//删除
db.person.remove({name:"zzz",age:18})
//查找
db.person.find({name:"zzz",age:18})
//排序  1 为升序排序,而-1是用于降序排列。
db.person.find().sort({age:-1})
//分页
db.person.find().sort({age:-1}).skip(10).limit(10)
//修改
db.person.findOne({"name":"zzz",age:17})
db.person.update(p,{name:"zwy",age:99})
//批量修改
 db.person.update({name:"zzz"},{$set:{age:336}},false,true)
//不存在就插入
db.person.update({age:30},{$set:{age:316}},true)
//group by
	/*
	 * key:grouby 的关键字
	 * initial :初始化话函数,所有age相同的组别,执行reduce之前要先调用的函数
	 * reduce:对所有age相同的记录要执行的reduce函数
	 * finalize:执行完所有的reduce函数之后要调用的函数
	 * condition:输出的判断条件*/
db.person.group({
	key:{age:true},
	initial:{"person":[]},
	$reduce:function(cur, prev) {
		prev.person.push(cur.name);
	},
	finalize:function(out) {
	 out.size =  out.person.length;
	},
	condition:{age:{$gt:20}}
})
//MapReduce  hadoop的MapReduce操作
// map function
 m = function(){    
    emit( this.age , { count : 1 } );   
};
// reduce function
r = function( key , values ){
    var total = 0;
    for ( var i=0; i<values.length; i++ )
        total += values[i].count;
    return { count : total };
};
res = db.person.mapReduce(m,r,{out:"list"});
db.list.find()
//查询索引 
db.person.getIndexes()
//创建索引  1 为升序排序,而-1是用于降序排列。
db.person.ensureIndex({age:1})
//删除索引
db.person.dropIndex({age:1})

//聚合
/*$sum	计算总和。
$avg	计算平均值
$min	获取集合中所有文档对应值得最小值。
$max	获取集合中所有文档对应值得最大值。
$push	在结果文档中插入值到一个数组中。	
$addToSet	在结果文档中插入值到一个数组中,但不创建副本。	
$first	根据资源文档的排序获取第一个文档数据。	
$last	根据资源文档的排序获取最后一个文档数据	
*/
db.person.aggregate([{$group : {_id : "$age" ,num_age : {$sum : 1 }}}])
==>等价于 select by_user, count(*) from mycol group by by_user
db.person.aggregate([{$group : {_id : "$age" ,avg_age : {$sum :  "$age" }}}])
==>等价于 select by_user, sum(age) from mycol group by by_user


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值