• mongodb下载安装和基本操作


    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

    好吧,上面是关于mongoDB数据库的介绍,它不是我们今天的重点。下面步骤才是重点:

    一、下载MongoDB安装包:

    1、网盘下载:链接:https://pan.baidu.com/s/1k1Rq7RZ8ubui4AFJ8BqfPw 提取码:45ju
    2、官网下载:地址:https://www.mongodb.com/try/download/community,然后点击Download下载即可。
    3、历史各个版本下载地址:http://dl.mongodb.org/dl/win32/x86_64

    在这里插入图片描述
    二、安装MongoDB

    双击运行刚刚下载的安装包:
    在这里插入图片描述
    接下来请按照图片顺序进行操作:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    三、配置Mongodb环境

    点击 -> 我的电脑右键 -> 属性 -> 高级系统设置 -> 环境变量

    在Path路径下添加MongoDB的安装路径。我的路径是:D:workappmongodbin。

    如下图:
    在这里插入图片描述

    MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。
    请注意,数据目录应该放在根目录下((如: C: 或者 D: 等 ),同时在data文件下创建一个新文件夹logs(用来存放日志文件)。下面是我添加的文件路径。

    在这里插入图片描述

    四、测试MongDB是否安装成功

    1、快捷windowns+R进入cmd命令行中:输入命令 mongod --dbpath D:datadb 回车。

    2、在浏览器输入http://localhost:27017 (27017是mongodb的端口号)进行查询。显示如下,表示连接成功。如果不成功,可以查看端口是否被占用。
    在这里插入图片描述
    3、Ctrl+C退出数据库

    五、配置 MongoDB 启动服务

    管理员的身份打开cmd,输入以下代码,注意根据data文件的路径配置。配置后可设置为开机自启动,可直接手动启动关闭,可通过命令行net start MongoDB 启动。

    mongod --logpath "D:datalogsmongodb.log" --logappend --dbpath "D:datadb" --directoryperdb --install

    在这里插入图片描述

    启动服务:net start MongoDB

    在这里插入图片描述
    停止服务:net stop MongoDB
    在这里插入图片描述
    六、MongoDB 后台管理 Shell

    如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo.exe文件,MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

    比如我的路径:D:workappmongodbinmongo.exe
    当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):

    在这里插入图片描述

    附:Mongodb常用命令(来自网络)

    db    
    显示当前的数据库名称
    
    show dbs    
    显示当前服务器下数据库(非空的数据库)列表
    
    use test    
    如果test数据库不存在,则创建test数据库
    如果test已存在,则切换到test数据库
    
    show collections    
    显示当前数据库下所包含的集合(表)列表
    
    db.users.insert({name:'zhangsha'})    
    向users集合中插入数据
    如果users集合存在,则直接插入数据,如果不存在,则创建users集合再插入数据
    
    db.createCollection('products')
    创建一个空集合products
    
    db.products.insert([{name:'lishi'},{name:'wangwu'}])        
    一次插入多个数据
    
    db.products.find()
    查询products集合中所有的数据
    
    db.products.find({name:'苹果手机'})
    查询stu集合中name='苹果手机'的数据
    
    db.products.find({name:{$eq:'苹果手机'}})
    同上,$eq=>等号,建议使用上面的方式,易记,易输入
    eq = equal
    
    db.products.find({price:{$gt:18}})
    查询stu集合中age>18的数据  
     
    把$gt换成如下的符号试试:
    $gt=>大于   great
    $gte=>大于等于 great equal
    $lt=>小于   less than
    $lte=>小于等于 less than equal
    $ne=>不等于  not equal
    $in=>在范围内
    $nin=>不在范围内
    以上几个符号格式总结为:{ field: {符号: value}}
    
    db.products.find({name:/^华为/})
    查找stu集合中name域中以“华为”字符的开头的数据
    
    db.products.find({name:{$in:['手机1','手机2']}})
    查询stu集合中name='手机1'和name='手机2'的数据
    $in=>在范围内
    $nin=>不在范围内
    以上两个符号格式为:{ field:{符号:[value1,value2,....]}}
    
    db.products.find({name:"华为手机",price:800})
    查找name="华为手机"并且price:800的数据
    
    db.products.find({$or:[{name:'华为手机'},{price:{$lt:1000}}]})
    查询products集合中name='华为手机' 或者 price<1000的数据
    $or=>或者  注意$or:[{},{},....]
    $and=>并且  格式同$or, 例:{$and:[{},{},....]}
    $nor=>not or 与$or相反, 格式同$or
    
    db.products.find({price:{$not:{$gt:100}}})
    查询products集合中price<=100的数据,不存在price属性的数据也会查询出来
    $not=>取反 
    
    db.products.find({price:{$exists: true}})
    查询products集合中包含域名称为price的数据
    
    db.products.find({name:{$type:2}})
    查询products集合中name属性为字符串类型的数据
    
    db.products.find({
        $where: function(){
            return this.name == '华为手机'
        }
    })
    查询products集合中name='华为手机’的数据
    
    db.products.find({
        $where: function(){
             return  this.name.indexOf('华为手机') > -1;
        }
    })
    查询products集合中name域中包含“华为手机”字符的数据
    
    db.products.update({name:'华为手机'},{$set:{price:2000}},{
        upsert: true,
        multi:false
    })
    把products集合中name='华为手机'的那条数据,把price属性设置成2000,其它属性保留
    $set是指更改的属性列表,不在列表中其他属性会被保留,如果不加此符号,其它属性会被丢弃(_id属性比较特殊,不会丢失)
    upsert:true如果没有符号条件的更新时,则插入一条,为false时,则不会插入, 默认是false
    multi:false一次只能更新一条数据,为true时,可更新多条,默认是false
    
    db.students.remove({})
    清空集合students
    
    db.products.remove({name:'abc'})
    删除products集合中name='abc'的数据,注意,即使把集合products中的所有数据都删除了
    products集合仍然存在, remove()是用来删除数据的,而drop()不仅会删除数据,还会把
    集合的结构给删除
    
    db.products.drop()
    把stu集合彻底从当前数据中删除,集合stu不再存在,注意与remove()的区别
    
    db.dropDatabase()
    删除当前数据库
    
    db.users.distinct('name')
    查询users集合中不重复的name属性,返回的是数组
    
    db.stu.count({name:'zhangshan'})
    查询stu集合中name='zhangshan'的数据数量
    
    db.stu.find().limit(5)
    查询stu集合中前5条数据
    
    db.stu.find().skip(5)
    查询stu集合中跳过前5条后的数据
    
    db.stu.find().sort({name:1})
    查询stu集合中的全部数据,并按name属性正序排列  注:1:正序 -1: 倒序
    
  • 相关阅读:
    sklearn的train_test_split函数
    Tensorflow报错:InvalidArgumentError: You must feed a value for placeholder tensor 'input_y' with dtype
    conda install 安装太慢怎么办?
    python merge、concat合并数据集
    如何调用写好的指定模块?——sys.path
    对分类特征做编码
    ThreadPoolExecutor的创建
    MYSQL中VARCHAR长度怎么选?
    JAVA实现一个低性能的WEB服务器(一)——线程池
    在连接校园网的同时连接外网|同时访问内网与外网
  • 原文地址:https://www.cnblogs.com/mxxbc/p/14055641.html
Copyright © 2020-2023  润新知