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,当然这个端口号也可以用命令自己改。下面这个是我自己的数据库,展示了它的内部数据的存储结构。
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)=>{})
这时数据库里面就会有刚才插入的数据了。