mongodb学习笔记

一、什么是mongodb

    数据库分为关系型数据库和非关系型数据库,mongodb是一种非关系型数据库,所有数据的存储格式都是键值对,各个数据之间没有关系。
二、windows环境中安装数据库
    主要有三种方法:暴力下载安装、docker安装、homebrow安装。
    暴力下载安装:
        1.从官网下载https://www.mongodb.com/download-center/community 安装包
        2.配置全局环境变量,配置环境的方法因为系统不同而不一样
            windows系统:我的电脑图标右击设置=》高级系统设置=》环境变量=》编辑系统变量=》把下载的mongodb的bin路径粘贴进去=》done!
            mac系统:根路径下新建.bash_profil文件,如果存在就直接编辑=》格式为:export MongoDb = /usr/local/mongoDb;export PATH=$PATH:$MongoDb /bin
                     =>touch ~/.bash_profil使文件生效=》done!
        3.生成一个数据库文件data>db/log,用命令mongod --dbpath 路径 来确定本地数据库路径
        4.终端中输入mongod来启动mongodb
        5.下载一个可视化工具查看数据,对数据操作(比如robo 3T)
    docker安装:
        1.首先需要下载docker toolbox,这是docker运行的依赖。
        2.通过docker pull 从仓库中拉取mongodb镜像
        3.生成一个本地mongodb容器,这个本地容器可以运行mongodb
    homebrew安装:homebrew是mac上的一种包管理工具
        0.确保mac已经安装了HomeBrew (macos的包管理工具安装方式:终端执行   ruby -e "$(curl -fsSLhttps://raw.github.com/mxcl/homebrew/go)")
        1.终端执行执行:brew install mongodb, 等待几分钟, 即可自动下载并安装 mongoBD
        2.启动mongodb服务:终端执行: brew services start mongodb
        注:使用brew 默认下载地址为   /usr/local/Cellar/  下的 mongodb文件夹。
三、mongodb的简单操作(对集合来说的)
    在对mongodb进行操作之前,首先在终端让mongodb启动:mongod ,它默认的端口号是27017,当然这个端口号也可以用命令自己改。下面这个是我自己的数据库,展示了它的内部数据的存储结构。

mongodb学习笔记


    0.新建一个数据库:右击根目录,新建数据库(test);在test数据库上右击,新建一个集合(first)。
        show dbs:查看所有的数据库;
        use <数据库名>:进入某个数据库(use test);
        db:查看当前数据库;
        show collection:查看数据库的集合有哪些;
    1.增:db.first.insert({"name":"aha"}),也可以插入多个文档:db.first.insert({"name":"html"},{"name":"css"},{"name":"javascript"})
         当然也可以用db.first.insertOne({})和db.first.insertMany({});
    2.删:db.first.removeOne({'name':'html'}),remove可接受一个对象作为删除对象的条件,满足该条件即删除;
         当然也可以用db.first.removeMany({}),就是所有满足条件的都会被删除;
    3.改:db.first.update({'name':'html'},{$set:{'name':'python'}},{multi:true});
         {multi:true}这个参数的作用就是匹配多个进行删除,没有的话只会删除匹配到的第一个。
    4.查:db.first.find({条件},"规定返回的属性"),也可以最后.pretty(),它会以一种标准化的格式输出。
四、mongoose
    mongoose是为node封装的一个mongodb库,相比较mongodb来说,写法更加简单,很多函数都封装好了,可以直接使用。
    mongoose在node中的使用:
        引入:import mongoose from "mongoose";
        连接mongodb(前提是mongodb已经启动起来): mongoose.connect("mongodb://localhost/test",{useNewUrlParser:true});这个链接的是mongodb数据库中的test数据库
            mongodb的结构:数据库>集合>文档
        监听是否连接成功:mongoose.connection.on("open",()=>{});
        创建testSchema模式对象:const testSchema = mongoose.Schema({});
        创建以testSchema模式对象为基础的test集合:mongoose.model("test",testSchema);
        创建以testSchema模式对象为基础的doc文档:const doc = new testSchema({});
        保存:doc.save((err,result)=>{})
        这时数据库里面就会有刚才插入的数据了。