• mongodb之开发相关


    关于mongodb,有几个大的特点:
    1,用mongo shell的话,它的语法类似于Linux中的命令
    2,mongodb中的函数参数,返回结果基本上用 JSON表示,所以要用JSON的思维来学习mongodb
    ============关于引用
    Mongodb不支持Join操作,代替的方式是引用,
    ===方式一,手工引用,如下:
    就是一个document中的字段值为另一个document的_id,例子:
    original_id=ObjectId()
    db.places.insert(
    {
    "_id":original_id,
    "name":"H.K",
    "url":"aa.bb.cc.aspx"
    }
    )
    db.people.insert(
    {
    "name":"jonh",
    "place_id":original_id,
    "url":"aa.bb.cc.aspx/test"
    }
    )
    ===方式二:DBRef引用,方式如下:
    {$ref::<value>,$id::<value>,$db:<value>}
    其中:
    $ref 是引用的collection的名字
    $id 是引用的document的_id
    $db 是引用的数据名
    ==================ObjectId
    12自己的BSON类型,组成如下:
    4 byte timestamp; 3 byte machine identifier; 2 byte process id, 3 byte counter.
    mongodb默认用它做主键,好处如下:
    1)能得到这个_id的创建时间,通过getTimestamp()方法可以得到
    2)通过_id和创建时间排序的效果一样。
    ===ObjectId()
    这个 mongo shell 提供的包装类,它能产生一个新的ObjectId,属性和方法如下:
    1 str 该_id的值,不过是用16进制字符串表示的。
    2 getTimestamp() 返回ObjectId() 对象的创建时间,返回类型是Date
    3 toString() [V2.2及以后] ObjectId对象的字符串表示,格式如下: ObjectId(...)
    4 valueOf() [V2.2及以后] 和str属性的值相同
    打开命令行工具,连接到mongodb,然后输入如下命令:
    x=ObjectId() 显示结果如下:
    ==返回ObjectId()的时间戳,如下:
    ==返回ObjectId()的字符串,如下:
    ==返回ObjectId()的值,如下:
    ==========Capped Collection
    可覆盖的Collection:超过指定的空间大小后会覆盖最开始的数据,周而复始。
    它的特定:1)插入的顺序就是它在磁盘上的顺序。2)更新时如果让document变大了,那么会更新失败。
    3)不能删除Capped Document的数据,如果要删除所有数据,可以使用 emptycapped 命令
    比较适合:1,可循环的日志,比如规定500M大小的日志,超过500M后会删除最开始的日志,用现在的日志去记录。
    2,Cache,不说了,你懂的。
    ===创建 Capped Collection
    必须显式使用命令 createCollection()来创建;在创建时必须指定一个固定大小(以字节为单位),例子:
    db.createCollection("mycoll",{capped:true,size:10000})
    ==查询命令:
    db.cappedCollection.find().sort($natural:-1) //表示按照插入顺序的反序排列结果(默认按查询顺序排列结果)
    ==检查一个collection是否是capped的:
    db.collection.isCapped()
    ==将一个collection转为capped的:
    db.runCommand({"convertToCapped":"mycoll",size:10000})
  • 相关阅读:
    TCP/IP协议学习-1.概述
    Gitlab与Sonarqube整合-代码提交自动检测
    Kubernetes-4.Pods
    Kubernetes-3.安装
    Kubernetes-2.组件
    Kubernetes-1.概述
    第200题 数列极限积分
    English
    亮总语录
    RadioButton Control
  • 原文地址:https://www.cnblogs.com/imap/p/2789855.html
Copyright © 2020-2023  润新知