zoukankan      html  css  js  c++  java
  • Mongo 安装及基本操作

    一. 安装

    Mongo文档: https://docs.mongodb.com/v3.6/administration/install-enterprise-linux/

    Linux mongo的配置文件一般在: /etc/mongod.conf

    sudo apt-get install mongodb

    二. 启动mongodb

    # 启动
    sudo service mongod start
    # 关闭
    sudo service mongod stop
    # 重启
    sudo service mongod restart

    三. 创建用户名密码

    1. 创建管理员账户

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

    2. 创建普通账户

    mongo
    
    use test
    
    db.createUser(
      {
        user: "simpleUserName",
        pwd: "simplePassWord",
        roles: [ { role: "readWrite", db: "test" },
                 { role: "read", db: "test2" } ]
      }
    )

    # 权限:  读写数据库 test, 只读数据库 test2。

    四. 连接

    # 本地连接
    mongo
    # 连接有用户名密码的mongo
    mongo -u "user" -p "password"
    # 连接远程mongo
    mongo ip
    
    # 连接远程 有用户名密码的指定数据库 mongo
    
    1. 直接使用用户名密码连接
    mongo ip/db -u 'user' -p 'password'
    
    例: mongo 127.0.0.1/admin -u "root" -p "root"
    
    2. 先连接上远程客户端, 在进行验证
    mongo ip
    
    use admin
    db.auth("adminUser", "adminPass")

    五.基本操作

    1. 常用操作

    # 查看所有数据库
    show dbs
    
    # 进入test 数据库, 没有则会创建
    use test
    
    # 创建表
    db.createCollection("reviews")
    
    # 查看test下的表 
    show tables

    2. 基础查询

    # 查看test下reviews表的总条数
    db.reviews.count()
    或
    db.reviews.find().count()
    
    # 查询前10条
    db.reviews.find().limit(10)
    
    # 跳过前10条, 查询10条
    db.reviews.find().skip(10).limit(10)
    
    # 查询_id为1的数据
    db.reviews.find({"_id":1})

    3. 插入数据

    db.COLLECTION_NAME.insert(document)
    # 插入reviews表一条数据
    db.reviews.insert({"_id":1})
    结果: WriteResult({ "nInserted" : 1 })
    
    # 插入多条
    db.reviews.insert([{"_id":2}, {"_id":3}])
    结果: BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 2,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
    })
    
    # 注意插入已存在的_id, 会报错

    4. 删除

    如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

    db.collection.remove(
       <query>,
       {
         justOne: <boolean>,
         writeConcern: <document>
       }
    )

    参数说明:

    • query :(可选)删除的文档的条件。
    • justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
    • writeConcern :(可选)抛出异常的级别。
    # 删除数据库, 慎用
    use test
    db.dropDatabase()
    
    # 删除reviews表
    db.reviews.drop()
    
    # 删除reviews的符合条件的数据
    db.reviews.remove({"_id":1})
    
    # 只删除第一条符合条件的数据
    db.reviews.remove({"_id":1}, 1)
    
    # 删除所有数据
    db.reviews.remove({})

    5. 更新数据

    update() 方法用于更新已存在的文档。语法格式如下:

    db.collection.update(
       <query>,
       <update>,
       {
         upsert: <boolean>,
         multi: <boolean>,
         writeConcern: <document>
       }
    )

    参数说明:

    • query : update的查询条件,类似sql update查询内where后面的。
    • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
    • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
    • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
    • writeConcern :可选,抛出异常的级别。
    #  更新_id: 3的数据status更新为1
    db.reviews.update({"_id":3},{$set: {"status":1}})
    结果: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

    如有错误, 欢迎交流

  • 相关阅读:
    Linux CentOS7 下设置tomcat 开机自启动
    MYSQL批量导入数据报:[Err] 2006
    HTML页面仿WORD样式
    /usr/bin/ld: cannot find -lxxx 问题
    Linux 重命名
    Linux mail
    cenos 7 mysql
    linux 解压与压缩
    python 字符串替换
    cpu相关信息(进程、线程、核...)
  • 原文地址:https://www.cnblogs.com/mswei/p/11691292.html
Copyright © 2011-2022 走看看