zoukankan      html  css  js  c++  java
  • 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"}}});



  • 相关阅读:
    6.Ray-消息订阅器编写
    附录:2-Event Sourcing pattern (事件溯源设计模式)
    附录:1-Grain生命周期-译注
    4.Ray-Handler之CoreHandler编写
    Q&A-20180128
    TODO
    3.Ray-Event编写
    缓存技术内部交流_01_Ehcache3简介
    Spring AMQP 源码分析 04
    Spring AMQP 源码分析 03
  • 原文地址:https://www.cnblogs.com/pzyin/p/6692460.html
Copyright © 2011-2022 走看看