mongodb入门
关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。
准备工作:下载安装mongodb
1、启动mongodb
# mongodb数据存储路径不能有空格
mongod --dbpath=D:/mongodb
# mongodb默认使用27017端口
2、基本操作
#登录
cd $mongodb/bin mongo
1> insert
db.person.insert({"name":"jack","age":25}) db.person.insert({"name":"tom","age":20}) db.person.insert({"name":"jason","age":21}) var rose={"name":"rose","sex":1,"age":18} db.person.insert(rose)
2> find
# 查询所有
db.person.find()
# "_id": 这个字段是数据库默认给我们加的GUID,目的就是保证数据的唯一性。
# 查询jack用户信息
db.person.find({"name":"jack"})
# 日常开发中,常见查询的操作
① 范围查询:>, >=, <, <=, !=, = 在mongodb中分别对应$gt, $gte, $lt, $lte, $ne
#查询年龄小于等于20岁的用户
db.person.find({"age":{$lte:20}})
② 逻辑关联:OR,In,not in 在mongodb中分别对应$or, $in, $nin
# 查询用户名包含jack 和rose的用户
db.person.find({"name":{$in:["jack", "rose"]}})
# 查询用户名为jack 年龄为25岁的用户
db.person.find({"name":"jack","age":20})
# 查询用户名以j开头的用户信息
db.person.find({"name":/^j/})
# 查询用户名以e结尾的用户信息
db.person.find({"name":/e$/})
# where查询
db.person.find({$where:function(){return this.name=="jack"}})
3> update
# update方法的第一个参数为“查找的条件”,第二个参数为“更新的值”
db.person.update({"name":"tom"},{"name":"joe","age":19})
#局部修改器$inc 和 $set
#$inc修改器
db.person.update({"name":"jack"},{$inc:{"age":30}})
#$set修改器
db.person.update({"name":"jack"},{$set:{"age":20}})
4> remove
# 删除jack用户信息
db.person.remove({"name":"jack"})
3、聚合
1> count
# 统计用户数
db.person.count()
# 统计年龄在20岁的用户数
db.person.count({"age":20})
2> distinct
#查询年龄段
db.person.distinct("age")
3> group
#按照age进行分组
db.person.group({"key":{"age":true},"initial":{"person_name":[]},"$reduce":function(cur,prev){prev.person_name.push(cur.name);}})
4> mapReduce
mapReduce其实是一种编程模型,用在分布式计算中,其中有一个“map”函数,一个”reduce“函数。
① map:这个称为映射函数,里面会调用emit(key,value),集合会按照你指定的key进行映射分组。 ②reduce:这个称为简化函数,会对map分组后的数据进行分组简化,注意:在reduce(key,value)中的key就是emit中的key,vlaues为emit分组后的emit(value)的集合。
db.orders.insert({"cust_id":"A123","amount":500,"status":"A"}) db.orders.insert({"cust_id":"A123","amount":250,"status":"A"}) db.orders.insert({"cust_id":"B212","amount":200,"status":"A"}) db.orders.insert({"cust_id":"A123","amount":300,"status":"D"}) db.orders.mapReduce( function(){emit(this.cust_id,this.amount);},//map function(key, values){return Array.sum(values)},//reduce { query:{status:"A"}, out:"order_totals" } ) db.order_totals.find()
参考:http://www.cnblogs.com/loogn/archive/2012/02/09/2344054.html
4、游标
var list = db.person.find(); list.forEach(function(x){ print(x.name); })
上一篇: spring mongo 注解
下一篇: mongo 启动方式