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"}}});



原文地址:https://www.cnblogs.com/pzyin/p/6692460.html