• python中MongoDB快速介绍


    1.关系型和非关系型的介绍  

     relational    关系型                                 

      关系数据库很强大,但是他并不能很好的应付所有的应用场景。MySQL的扩展性查,大数据IO压力大,表结构更改困难

      MongoDB   非关系型

       易扩展,大数据量高性能,灵活的数据模型,高可用

    2.mongodb的优势

      ①易扩展:NoSQL数据库种类繁多,但是一个共同特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展

      ②大数据量,高性能:NoSQL数据可都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于他的无关系性,数据可的结构简单

      ③灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

    3.mongodb安装

      下载地址:

      https://www.mongodb.com/download-center/community

      一定要下载zip文件

      解压后放到c:MongoDB

    4.客户端mongo

      启动本地客户端:mongo

      查看帮助:mongo -help

      退出:exit或者ctrl+c

    5.关于database的基础命令

    查看当前数据库:db

    查看所有的数据库:show dbs /show databases

    切换数据库:use db_name

    删除当前数据库:db.dropDatabase()

    6.关于集合的基础命令

    不手动创建集合:向不存在的集合中第一次加入数据时,聚合会被创建出来

    手动创建集合:

      db.createCollection(name,options)

      db.createCollection("student")

    db.createCollection("sub",{capped:true,size:10})

    参数capped:默认值为false,表示不设置上线,值为true表示设置上线

    参数size:当capped值为true时,需要制定此参数,表示上线大小,当文档 达到上线时,会将之前的数据覆盖,单位为字节

      查看集合:show collections

      删除集合:db.集合名称.drop()

    7.数据类型

      object ID:文档ID

    string:字符串,最常用,必须是有效地UTF-8

    Boolean:存储一个布尔值,true或false

    integer:整数可以是32位或64位,这取决于服务器

    double:存储浮点数

    arrays:数组或列表,多个值存储到一个键

    object:用于嵌入式的文档,即一个值为一个文档

    null:存储null值

    timestamp:时间戳,表示从1970-1-1到现在的总秒数

    date:存储当前日期或时间的UNIX时间格式

    注意点:

      ①创建日期语句如下:参数的格式为YYY-MM-DD

        new Date("2017-12-20")

      ②每个文档都有一个属性,为_id,保证每个文档的唯一性

      ③可以设置_id插入文档,如果没有提供,那么mongoDB为每个文档提供了一个独特的_id,类型为objectID

      ④objectID是一个12字节的十六进制数前四个字节为当前的时间戳,接下来字节的机器ID,接下来两个字节中mongoDB的服务进程id,最后三个字节是简单的增量值

    8.

    ①插入:db.集合名称.insert(document)

    插入文档时,如果不指定——id参数,mongoDB会为文档分配一个唯一的objectID

    ②保存:db.集合名称.save(ocument)

    如果文档_id已经存在则修改,如果文档的_id不存在则添加

    ③简单的查询:db.集合名称.find()

    ④更新:db.集合名称.update(<query>,<update>,{multi:<boolean>})

      参数query:查询条件

      参数update:更新操作符

      参数multi可选:默认是false,表示只更新找到第一条记录,值为true,表示吧安祖条件的文档全部更新

      db.student.update({name:"hr"},{name:"mnc"})更新一条

      db.student.update({name:"hr"},{$set:{name:"hys"}})更新一条

      db.studnt.update({},{$set:{gender:0},{multi:true}})更新全部

    ⑤删除:db.集合名称.remove(<query>,<justOne:<boolean>>)

      参数query:可选,删除的文档的条件

      参数justOne:可选,如果设为true或1,则只删除一条,默认为false,表示删除多条

    ⑥数据查询:方法find():查询

      db.集合名称.find(条件文档)

      方法findOne():查询,只返回第一个

      db.集合名称.findOne(条件文档)

      方法pretty():将结果格式化

      db.集合名称.find({条件文档}).pretty

  • 相关阅读:
    cesium计算当前地图范围extent以及近似当前层级zoom
    Cesium专栏-雷达遮罩动态扫描(附源码下载)
    Cesium专栏-地形开挖2-任意多边形开挖(附源码下载)
    Cesium 限制相机进入地下
    Cesium专栏-terrain地形、3dtiles模型、gltf模型 高度采样
    GeoTools介绍、环境安装、读取shp文件并显示
    基于vue+leaflet+echart的足迹分享评论平台
    10个JavaScript调试技巧,帮你更好、更快地调试代码
    后台权限管理,看这篇就够了
    编程狮-在线工具
  • 原文地址:https://www.cnblogs.com/zgl19991001/p/10712453.html
Copyright © 2020-2023  润新知