• Docker 安装 MongoDB


    1、查看可用的 MongoDB 版本

    访问 MongoDB 镜像库地址: https://hub.docker.com/_/mongo?tab=tags&page=1

    2、取最新版的 MongoDB 镜像

    这里我们拉取官方的最新版本的镜像:

    $ docker pull mongo:latest

    3、查看本地镜像

    使用以下命令来查看是否已安装了 mongo:

    $ docker images

    4、运行容器

    安装完成后,我们可以使用以下命令来运行 mongo 容器:

    $ docker run -itd --name mongo -p 27017:27017 mongo --auth

    参数说明:

    • -p 27017:27017 :映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务。
    • --auth:需要密码才能访问容器服务。

     

    5、安装成功

    最后我们可以通过 docker ps 命令查看容器的运行信息:

    接着使用以下命令添加用户和设置密码,并且尝试连接。
    $ docker exec -it mongo mongo admin
    # 创建一个名为 admin,密码为 123456 的用户。
    >  db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
    # 尝试使用上面创建的用户信息进行连接。
    > db.auth('admin', '123456')

    6、MongoDB数据库基本用法

     用户相关

    1、添加一个用户

    use admin
    db.createUser(
    {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    } )

    2、数据库认证、安全模式

     db.auth("userName", "123123");

    3、显示当前所有用户

     show users;

    4、删除用户

     db.removeUser("userName");

    show dbs:显示数据库列表 
    show collections:显示当前数据库中的集合(类似关系数据库中的表) 
    show users:显示用户
    use <db name>:切换当前数据库,这和MS-SQL里面的意思一样 
    db.help():显示数据库操作命令,里面有很多的命令 
    db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 
    db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) 
    db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
    MongoDB没有创建数据库的命令,但有类似的命令。
    如:如果你想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。
    数据库常用命令

    1、Help查看命令提示
     db.help();

    2、切换/创建数据库
     use yourDB; 当创建一个集合(table)的时候会自动创建当前数据库
    3、查询所有数据库
     show dbs;
    4、删除当前使用数据库
     db.dropDatabase();
    5、从指定主机上克隆数据库
     db.copyDatabase(“127.0.0.1”); 将指定机器上的数据库的数据复制到当前数据库
    6、从指定的机器上复制指定数据库数据到某个数据库
     db.copyDatabase("product_test_db", "test_db", "172.20.65.151");将远程172.20.65.151服务器中product_test_db数据库的数据复制到本机test_db数据库中
    7、修复当前数据库
     db.repairDatabase();
    8、查看当前使用的数据库
     db.getName();
     db; db和getName方法是一样的效果,都可以查询当前使用的数据库
    9、显示当前db状态
     db.stats();
    10、当前db版本
     db.version();
    11、查看当前db的链接机器地址
     db.getMongo();

    collection集合

    1、创建一个聚集集合(table)

     db.createCollection(“collName”);

    2、得到指定名称的聚集集合(table)

     db.getCollection("account");

    3、得到当前db的所有聚集集合

     db.getCollectionNames();

    show collections;

    4、显示当前db所有聚集索引的状态

     db.printCollectionStats();

    查看集合基本信息

    1、查看帮助  db.yourColl.help();

    2、查询当前集合的数据条数  db.yourColl.count();

    3、查看数据空间大小 db.userInfo.dataSize();

    4、得到当前聚集集合所在的db db.userInfo.getDB();

    5、得到当前聚集的状态 db.userInfo.stats();

    6、得到聚集集合总大小 db.userInfo.totalSize();

    7、聚集集合储存空间大小 db.userInfo.storageSize();

    8、Shard版本信息  db.userInfo.getShardVersion()

    9、聚集集合重命名 db.userInfo.renameCollection("users"); 将userInfo重命名为users

    10、删除当前聚集集合 db.userInfo.drop();

    update详解:

    db.collection.update( criteria, objNew, upsert, multi )

    criteria : update的查询条件,类似sql update查询内where后面的
    objNew   : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    upsert   : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    multi    : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

    例:
    db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条记录
    db.test0.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 全更新了
    db.test0.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 只加进去了第一条
    db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 全加进去了
    db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );全更新了
    db.test0.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );只更新了第一条

  • 相关阅读:
    利用rqalpha完成一个股指期货的回测(二) 分钟数据获取和转换
    利用rqalpha完成一个股指期货的回测(一)
    Pandas
    SAR停损指标
    一些简单的指标
    协程--流畅的Python第16章读书笔记
    python初级(302) 8 列表(选择排序练习二)
    博客已转移至 http://blog.yemou.net/
    将博客搬至51CTO
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/mumuda/p/14805665.html
Copyright © 2020-2023  润新知