MongoDb学习历程
MongoDB概念:
大数据时代,sql已经不太能满足需求.nosql不仅仅是sql,分布式,介于关系 和 非关系数据库之间的产品,是非关系数据库中最丰富,最像关系数据库的.
关系型数据库遵循ACID规则: 原子性 一致性 独立性 持久性
基本语法
1.update 更新
db.godcust_active.update({"state" : 1},{$set:{"state" : 0}})
2.ObjectId 主键生成
0 1 2 3 : 时间戳 4 5 6 : 机器 7 8 : PID 9 10 11: 计数器
3. and
db.users.find({"user":"yinpz","age":"20"})
4.查询条件
$lt 小于 $lte 小于等于 $gt 大于 $gte 大于等于 $ne $not 不等于
5. or 查询
db.users.find({"id_num":{"$in":[777,365,001]}})
db.users.find({"$or":[{"id_num":{"$in":[777,365,001]}},{"winner":true}]})
6. 特定类型的查询
null
正则表达式 (模糊匹配)
db.order_fetch_logs.find({"shopTitle" : /为美/})
7. 查询数组
$all
$size
$slice
8. limit skip sort
db.users.find().limit(5)
db.usesr.find.skip(5)
db.users.find().sort({age : -1}) //1是升序 -1是降序
8. 数据备份
mongodb_svr/bin/mongorestore -d order4paas --collection order_info /home/mongodb/dump/order4paas/order_info.bson.gz --gzip --drop
9. 聚合
简单聚合命令 : count,distinct,group
筛选 filtering 投射 projecting 分组 grouping 排序 sorting 限制 limiting 跳过 skipping
db.sku_rank_info.aggregate({"$project":{"skuName" : 1}}) 将 skuName 从每个文档中 映射出来.
db.sku_rank_info.aggregate({"$sort":{"skuMoneyDay":-1}}) 将 skuMoneyDay 进行降序排列
db.sku_rank_info.aggregate({"$limit":3}) 只显示 文档中的3条数据
db.sku_rank_info.aggregate({"$group":{"_id" : "$skuName","count":{"$sum":1}}}) skuName 出现的次数 .
算术运算符 "$sum" "$avg" "$max" "$min" "$first" 返回分组中的第一个zhiu "$last"
10. 逻辑表达式
"$and" "$or" "$not" "$cond" "$ifNull"
11. 不适合mongodb的场景
mongodb 不支持事务.
12. 查看及创建索引
db.sys_operator_logs.getIndexes();
db.sys_operator_logs.ensureIndex({x:1})
13. mongodb
mongodb_svr/bin/mongorestore -d order4paas --collection sys_operator_logs /home/mongodb/sys_operator_logs.bson.gz --gzip
14. mongodb大于 小于
大于 这个时间: db.order_fetch_logs.remove({"logsTime":{"$lte":ISODate("2017-11-12T00:00:00Z")}})
db.order_fetch_logs.find({"logsTime":{"$gte":ISODate("2017-11-13T07:00:00Z")}})
db.order_fetch_logs.find({"orderCount":{"$gte":500}}) 小于 这个时间: db.sku_rank_info.remove({"createTime":{"$lte":ISODate("2017-05-14T12:00:00Z")}})
15. mongodb求和
db.getCollection('sale_analysis').aggregate({$group:{_id:null,saleNums:{$sum:"$saleNums"}}});