zoukankan      html  css  js  c++  java
  • NoSQL之Mongodb

    mongodb简介

    MongoDB是一个基于分布式文件存储的数据库,由c++语言编写.

    在高负载的情况下,添加更多的节点,可以保证服务器性能,MongoDB指在为web应用提供可扩展的高性能数据存储解决方案.

    MongoDB将数据存储为一个文档,数据结构有键值对组成.MongoDB文档类似于json对象

    {
        "_id" : ObjectId("5d0f43c6bf3f9a9fb70def86"),
        "name" : "alexDSB"
    }
    存储样式
    1.MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
    2.你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
    3.你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
    4.如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
    5.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
    6.MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
    7.Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
    8.Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
    9.Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
    10.GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
    11.MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
    12.MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
    13.MongoDB安装简单。
    特点

    MongoDB概念解析

    SQL术语/概念 MongoDB术语/概念 解释说明
    database database 数据库
    table table 数据库表/集合
    row document 数据记录/文档
    column field 数据字段/域
    index index 索引
    table joins   表连接,MongoDB不支持
    primary key primary key 主键,MongoDB自动将_id字段设置

    通过下图,我们可以更直观的了解Mongo中的一些概念

     启动MongoDB数据库

    1.我们下载完成以后,需要环境配置

    你下载的位置:  比如:C:mongo.dbin   注意:到bin下
    在配置环境变量
    
    
    --------------------------
    
     通过命令 mongod 来启动 MongoDB
            默认端口 27017
            redis:6379
            Mysql:3306
            mongod --dbpath="指定数据库存放路径"  比如:从新创建位置:D:datadb
    环境配置

    2应用连接MongoDB数据库

    通过 mongo 指令 进入本地数据库连接

    3.MongoDB数据

     mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row
        mongodb - 数据库服务 - 数据库 - 数据表 - 字段 - 数据
        
        show databases 查看当前数据库服务 中包含的数据库 磁盘中的数据库
        use db_name 切换当前使用的数据库 ,如果数据库不存在,会在内存中创建一个新的数据库
        db 显示当前使用的数据库 ,指数据库名 
        show tables 查看当前数据库中的数据表 - 预览 - 磁盘中的数据表
    View Code

    4.创建数据表

    db.数据表名  在内存中创建数据库表

    5.写入数据才能将内存中的数据库和数据表永久写入带磁盘中

    orm.create({}) == orm.insert({})
        增加数据
            db.users.insert({"name":1,"age":2})
            数据库.数据表.指令({数据})
        
        查询数据
            db.users.find()
            数据库.数据表.指令()
            
            
    View Code

    6.连接数据库MongoDB软件版

    就可以使用了

    pycharm连接MongoDB

    1.在pycharm下载pymongo

    2.导入模块,使用

    import pymongo
    
    conn= pymongo.MongoClient('127.0.0.1',27017)     #MongoDB默认端口27017
    MONGO_DB=conn['s17DB']   #使用了不存在的对象即创建该对象
    
    #增加  MONGO_DB.users.insert()
    MONGO_DB.users.insert_one({"name":'alexDSB'})  #增加一个
    MONGO_DB.users.insert_many([{"name":"alexDSB"},{"name":"路飞"}])  #增加多个
    #高级
    # res = MONGO_DB.users.insert_one({"name":"MJJ","age":45,"hobby":["抽烟","喝酒","烫头"]})
    
    #
    res = MONGO_DB.users.find_one({"age":1},{"_id":0})
    print(res,type(res))
    
    ress = list(MONGO_DB.users.find({},{"_id":0}))
    print(ress)
    for item in ress:
        print(item)
    print(ress)
    # find({}) 是一个生成器
    # res = list(MONGO_DB.users.find({"$or":[{"name":"配齐"},{"age":1}]},{"_id":0}))
    # res = list(MONGO_DB.users.find({"name":{"$in":["alex","alexDSB","配齐"]}}))
    # print(res)
    
    #
    # res = MONGO_DB.users.update_many({"name":"alexDSB"},{"$set":{"age":2}})
    # print(res.modified_count)
    # MONGO_DB.users.update_one({"hobby":"烫头","name":"MJJ"},{"$set":{"hobby.$":"绿玉屠龙"}})
    # MONGO_DB.users.update_one({"name":1},{"$push":{"package":{"name":"剧毒开天","act":1099,"p":"能换好多元宝"}}})
    
    #
     #MONGO_DB.users.delete_one({"name":3})
    # MONGO_DB.users.delete_many({"name":"alexDSB"})
  • 相关阅读:
    Python-内存管理
    Python如何操作Excel
    336. 文本压缩
    Python-锁
    MVC接收以post形式传输的各种参数
    linux批量替换指定文件夹中所有文件的指定内容
    ES6:string.raw浅析
    node学习笔记
    运行node提示:events.js:160 throw er; // Unhandled 'error' event
    socket.io入门示例参考
  • 原文地址:https://www.cnblogs.com/tianshuai1/p/11073529.html
Copyright © 2011-2022 走看看