• MongoDB


    Prerequisite

    Mongodb 相对于 Mysql,前者能处理 Json 格式文件,对数据文件处理更加友好

    Mongodb 官方下载链接:https://www.mongodb.com/try/download/community
    MongoDB Compass 官方下载链接:https://www.mongodb.com/try/download/compass
    MongoDB Shell 官方下载链接:https://www.mongodb.com/try/download/shell
    MongoDB Database Tools 下载链接:https://www.mongodb.com/try/download/database-tools?tck=docs_databasetools

    初始化

    Mongodb 下载到 D 盘
    Custom -> Data Directory 和 Log Directory -> 去掉 Install MongoDB Compass 的勾
    MongoDB Shell 也下载到 D 盘
    安装包解压到 D 盘
    MongoDB Compass 默认下载到 C 盘

    然后将 D:\Software\MongoDB\binD:\Software\Mongosh\bin 添加到 path
    在 D 盘根目录创建文件夹 D:\Mongo_data\dbD:\Mongo_data\log

    # 以管理员方式运行
    # 启动 Mongodb 服务(一直启动)
    mongod --dbpath "D:\Mongo_data\db" --logpath "D:\Mongo_data\log\mongodb.log" --serviceName "mongodb" --serviceDisplayName "mongodb" --install
    # 在 “服务” 程序中,手动启动 Mongodb 进程(需要关闭时停止即可)
    # 查看服务 http://127.0.0.1:27017/
    
    # 另开一个终端(连接 Mongodb)
    mongosh
    

    使用说明

    PS:MongoDB 区分大小写,但不区分 " 和 '

    • 基本用法
    # 显示所有数据的列表
    show dbs
    # 显示当前数据库(默认是 test)
    db
    # 进入数据库(如果没有会自动创建)
    use new
    # 进入默认数据库(不存在,但能显示)
    use test
    # 删除数据库(需要 use 进入后再删除)
    db.dropDatabase()
    # 插入数据
    db.new.insert({"name":"tuanzi"})
    # 清空命令
    cls
    
    • 集合
    # 查看已有集合
    show collections
    # 创建集合 ctf
    db.createCollection("ctf")
    # 删除集合 ctf
    db.ctf.drop()
    
    • 文档
    # 查看集合 ctf 中的文档内容
    db.ctf.find().pretty()
    # 插入一个文档(如果集合不存在,则自动创建)
    db.ctf.insertOne({title: '团子', 
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'tuanzi',
        url: 'http://www.tuanzi.com',
        tags: ['mongodb', 'database', 'NoSQL'],
        likes: 100
    })
    # 插入多个文档
    db.ctf.insertMany([{"a":1}, {"b":2}])
    # 更新第一条文档
    db.ctf.update({'title':'团子'}, {$set:{'title':'筱团'}})
    # 更新全部文档
    db.ctf.update({'title':'团子'}, {$set:{'title':'筱团'}}, {multi:true})
    # 删除集合下全部文档
    db.ctf.deleteMany({})
    # 删除 title 等于 团子 的一个文档
    db.ctf.deleteOne( { title : "团子" } )
    # 删除 title 等于 团子 的全部文档
    db.ctf.deleteMany({ title : "团子" })
    

    说白了,索引就是决定以某种方式排序的方法

    # 索引查询
    db.ctf.getIndexes()
    # v:索引版本
    # key:1 表示索引是按照升序构建的
    # name:索引名称
    
    # 索引创建
    db.ctf.createIndex({name:1});
    # db.ctf.createIndex(<keys>, <options>)
    # keys:指定了创建索引的字段
    # options:指定成 1 或者 -1 表示升序或降序
    
    # 删除索引
    db.members.dropIndex("索引名称")
    

    PyMongo(Python use MongoDB)

    官方文档

    from pymongo import MongoClient
    import pprint
    
    client = MongoClient('localhost', 27017)
    db = client['new']
    collection = db['ctf']
    pprint.pprint(collection.find_one())
    

    Mongo shell 编写脚本

    官方文档:为 mongo Shell 编写脚本

    编写脚本的文件格式是 JavaScript,支持交互式脚本和静态脚本,这里侧重说一下静态脚本

    首先编写 js 脚本(以打印数据库全部的集合为例)

    printjson(db.getCollectionNames())
    

    然后进入 mongodb 数据库,再运行 js 脚本

    mongosh
    # 进入数据库,根据脚本而执行的命令
    use new
    # 脚本的位置
    load("C:\\Users\\WPS\\Desktop\\Temporary\\mongo.js")
    

    MongoDB 导出导入

    mongoimport 官方文档
    mongoexport 官方文档

    MongoDB Database Tools 下载到 D 盘
    D:\Software\Mongotools\bin 添加到 path

    # 导出 JSON(数据库 new 的集合 ctf)
    mongoexport --collection=ctf --db=new --out=C:\Users\WPS\Desktop\data.json
    # 导入 JSON(数据库 new 的集合 ctf2)
    mongoimport --collection=ctf2 --db=new --file=C:\Users\WPS\Desktop\data.json
    

    Reference

  • 相关阅读:
    剑指OFFER----面试题17- 打印从1到最大的n位数
    剑指OFFER----面试题16. 数值的整数次方
    剑指OFFER----面试题15. 二进制中1的个数
    剑指OFFER----面试题14- II. 剪绳子II
    07 多层if判断
    08 while循环
    06 if 流程控制
    03 身份运算符、逻辑运算符
    04 位运算符、运算符优先级
    02 赋值运算符、成员运算符
  • 原文地址:https://www.cnblogs.com/CourserLi/p/16626843.html
Copyright © 2020-2023  润新知