• mongodb之基础操作


    1,安装:以我本机为例:

    1)命令安装方式:

    1.1 将下载下来的压缩包解压到 D:\Installed\MongoDB 下面。

    1.2 以管理员方式打开命令提示符,将目录切换到 D:\Installed\MongoDB\bin下面(也可以通过设置环境变量,这样就不用切换目录了)。

    1.3 运行下面的命令

    mongod --dbpath D:\Installed\MongoDB\data\db --logpath D:\Installed\MongoDB\log\mylog.log --install --serviceName "MongoDB"

    运行完成后在浏览器输入如下URL:http://localhost:27017/   如果出现类似下面的内容,就说明安装成功了:

    You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number 

    命令解释: --dbpath mongodb数据库文件的存放位置; --logpath mongodb日志文件的位置   --serviceName mongodb的服务名称

    2)配置文件方式安装(推荐) 

    2.1 新建一个配置文件mongod.cfg(名字不是强制的),放在D:\Installed\MongoDB 下面(位置也不是强制的),配置文件写入如下内容:

    dbpath=D:\Installed\MongoDB\data\db

    logpath=D:\Installed\MongoDB\log\mongod.log  

    这些内容是mongodb 安装时的配置信息

    2.2 以管理员方式进入命令提示符,运行如下命令:

    mongod --config d:\mongodb\mongod.cfg --install 

    安装成功后服务名默认为MongoDB

    ===================================mongodb 常用命令及索引操作

    常用命令:
    ====查看当前数据库状态
    db.stats()
    ===个性化系统可以帮助标记效率慢的查询,开启命令如下:
    db.setProfilingLevel(1)
    ==查看个性化数据,输出所有查询用时超过100ms的日志
    db.system.profile.find({millis:{$gt:100}})
    ==查看复制信息
    rs.status()
    ===查看锁情况
    use config
    db.locks.find()
    ========数据库备份步骤:
    1,将缓存中的数据写入磁盘,同时锁住数据库,不允许再写数据
    db.fsynclock()
    2,创建快照
    3,将数据库解锁
    db.fsyncUnlock()
    =======创建索引
    ensureIndex()
    =例子1:
    {"field1":1}
    {"field2,field3":1}
    {"field2":1,"field3":1}
    索引也可以建立在子文档上,比如:
    db.factories.find({metro:{city:"New York",state:"NY"}})
    =例子2:people类如下:
    {
    "_id":ObjectId(),
    "name":"john smith",
    "address":{
    "street":"Main",
    "zipcode":100081,
    "state":"WI"
    }
    }
    建立索引的语句:
    db.people.ensureIndex("address.zipcode":1)
    =组合索引
    products的collection如下:
    {
    "_id":ObjectId(...),
    "item":"Banana",
    "category":["food","produce","grocery"],
    "location":"4th Street Store",
    "stock":4,
    "type":cases,
    "arrival":Date(...)
    }
    建立组合索引的语句:
    db.products.ensureIndex({"item":1,"location":1,"stock":1})
    ==多键索引
    一个字段的值是一个数组,那么在这个字段上建立的索引会索引数组中的每一个元素。
    例子:
    {
    "_id":ObjectId("..."),
    "name":"Warm John",
    "author":"li ke",
    "tags":["weather","hot","record","april"]
    }
    ==唯一索引:
    例子:为user_id建立唯一索引:
    db.addresses.ensureIndex({"user_id":1},{unique:true})
    ===sparse index
    db.addresses.ensureIndex({"xmpp_id":1},{sparse:true})
    ==========创建索引的参数
    ==后台创建索引,不影响数据库实例的使用
    db.people.ensureIndex({zipcode:1},{background:true,sparse:true})
    ==强制创建唯一索引
    db.accounts.ensureIndex({username:1},{unique:true,dropDups:true})

    强制创建时会删除重复记录! 

  • 相关阅读:
    Java基础知识之设计模式--观察者模式
    Java基础知识之设计模式--工厂模式
    Java Socket应用
    Java基础知识之设计模式--单例模式
    Docker的三种网络代理配置
    Docker被禁了!只能靠它了......
    老司机带你出坑:请收下这份运维故障处理指南
    这样理解 HTTP,面试再也不用慌了~
    为什么说卷积神经网络,是深度学习算法应用最成功的领域之一?
    一文搞懂CDN加速原理
  • 原文地址:https://www.cnblogs.com/imap/p/2789852.html
Copyright © 2020-2023  润新知