MongoDB数据库简介:
使用MongoDB的好处是不用SQL语句,它提供了对应的API,其功能和MYSQL基本相同,是最像关系型数据库的非关系型数据库;不需要设计表的结构,文档相当于json,如果想要了解更多,可以阅读相关文档:https://www.runoob.com/mongodb/mongodb-tutorial.html;
关系型数据库:表就是关系,表与表之间的关系,所有的关系型数据库都要通过SQL语言来操作。
非关系型数据库:比较灵活,没有表,有的就是键值对的形式。
MongoDB使用步骤如下:
// 1.安装步骤:// 1.打开官网:https://www.mongodb.com ---> software ---> 选择免费Community server下载,注意一定要选择msi格式。// 2.将下载的程序双击打开,点击下一步,出现custom和complete时选择custom自定义目录安装,不勾选install MongoDB compass,最后点击install按照提示操作,finsh完成安装。// 3.打开命令行mongod --version查看版本,如果显示未安装,就去改变path指向的变量(复制mongodb的bin文件路径---我的电脑---属性---高级系统设置---环境变量---编辑path----新建添加复制的路径)// 2.启动:// 1.打开命令行键入命令:mongod 回车 , 如果启动不成功,则需要在安装文件所在盘符的根目录手动新建:data/db/ or 服务面板找到MongoDB服务启动// 2.改变数据存储目录键入命令:mongod --dbpath=数据储存目录路径// 3.停止:在控制窗口Ctrl + C or 服务面板找到MongoDB点击停止 // 4.连接数据库:新打开命令窗口键入命令:mongo 回车默认连接本机数据库 or 可视化面板 ,退出a键入命令:exit// 5.其它基本命令:1.show dbs---显示所有数据库 // 2.use 数据库名----切换到指定数据(没有回自动建立),实际操作是在node中操作,一般不在命令窗口操作。// 在node中操作MongoDB:// 1.使用官方的mongodb包操作:https://www.github.com/mongodb/node-mongodb-native(查阅文档使用)// 2.也可以使用第三方基于mongodb的包 mongoose 操作:http://mongoosejs.com/(查阅文档使用),步骤:// 1.命令行键入命令:npm install mongoose --save;-----------使用npm安装mongoose// 2.const mongoose = require('mongoose');-----------------载入mongoose模块// 3.mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true})-------连接MongoDB数据库// 4.const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() {// we're connected!})-----测试数据库连接是否成功,可以不用写这段代码// 5.const kittySchema = new mongoose.Schema({name: String})--------从Schema中派生一切,可以不用写这段代码// 6.const Kitten = mongoose.model('Kitten', kittySchema)------模式编译成模型// 7.const silence = new Kitten({ name: 'Silence' }); console.log(silence.name); --------模型是用来构造文档的类,创建一个文档(实例化一个Kitten)// 8.Kitten.save(function (err) {if (err) return console.error(err);console.log('Kitten')})-------数据持久化// 9.Kitten.find(function (err) {if (err) return console.error(err);console.log('Kitten');})------查询数据
在node中使用mongoose:
// 在安装完mongoose的情况下使用:// 1.载入mongoose模块:var mongoose = require('mongoose');// 2.连接数据库:mongoose.connect('mongodb://localhost/test',{useMongoClient:true});// 3.这段代码加不加都可以,后面学习promise时会具体讲解:mongoose.Promise = global.Promise;// 4.创建一个模型(设计数据库):var Cat = mongoose.model('Student',{name:String});//Cat为类似表名,自己会生成小写复数的集合名,把表称作集合// 5.持久化:jack.save(function (err) {if (err) {console.log(err);} else {console.log('meow 响应出结果');};});
mongoose中增删改查:
var mongoose = require('mongoose');var Schema = mongoose.Schema;// 1. 连接数据库:指定连接的数据库可以不需要存在,当你插入第一条数据之后就会自动被创建出来:mongoose.connect('mongodb://localhost/itcast');// 2. 设计文档结构架构(表结构),字段名称就是表结构中的属性名称,约束的目的是为了保证数据的完整性,不要有脏数据:var userSchema = new Schema({username: {type: String,required: true // 必须有},password: {type: String,required: true},email: {type: String}})// 3. 将文档结构发布为模型// mongoose.model 方法就是用来将一个架构发布为 model// 第一个参数:传入一个大写名词单数字符串用来表示你的数据库名称// mongoose 会自动将大写名词的字符串生成 小写复数 的集合名称// 例如这里的 User 最终会变为 users 集合名称// 第二个参数:架构 Schema,即文档结构架构// 返回值:模型构造函数var User = mongoose.model('User', userSchema);// 4. 当我们有了模型构造函数之后,就可以使用这个构造函数对 users 集合中的数据增删改查:// 新增数据:var admin = new User({username: 'zss',password: '123456',email: 'admin@admin.com'});admin.save(function (err, ret) {if (err) {console.log('保存失败');} else {console.log('保存成功');console.log(ret);}});//查询数据:User.find(function (err, ret) {if (err) {console.log('查询失败')} else {console.log(ret)}})User.find({username: 'zs'}, function (err, ret) {if (err) {console.log('查询失败')} else {console.log(ret)}})User.findOne({username: 'zs'}, function (err, ret) {if (err) {console.log('查询失败')} else {console.log(ret)}})// 删除数据:User.remove({username: 'zs'}, function (err, ret) {if (err) {console.log('删除失败')} else {console.log('删除成功')console.log(ret)}})// 更新数据:User.findByIdAndUpdate('5a001b23d219eb00c8581184', {password: '123'}, function (err, ret) {if (err) {console.log('更新失败')} else {console.log('更新成功')}})
数据可视化工具mongobooster:
// 数据可视化工具MongoBooster的使用步骤:// 1.下载地址:https://nosqlbooster.com/// 2.下载后双击,一路点击next// 3.双击打开,create一个数据库并测试连接是否成功// 4.对数据进行修改// node操作数据库://数据库操作模块var mongoose = require('mongoose')// 连接到mongoose数据库当中// connect连接 content内容 端口号(27017为固定端口号)// 端口号后面为数据库名称,如果有这个数据库,则直接连接,如果没有数据库则先创建,在连接mongoose.connect('mongodb://127.0.0.1:27017/test', function(err) {if (err) {console.log('数据库连接失败')} else {console.log('数据库连接成功')}})// 数据库 =>数据表 一个数据库里面可以有多个不同类型的数据表// 数据表 => 数据 一个数据表里面可以有多个不同类型的数据// schema 图表var messageSchema = new mongoose.Schema({// 该数据为字符串类型connect: String,name: String,age: Number,hasStar: Boolean})// model 模型var Message = mongoose.model('messageBox', messageSchema)var first = new Message({content: '今天是周日',name: '小熊',age: 3,hasStar: false})// 保存first.save(function(err) {if (err) {console.log('保存失败')} else {console.log('保存成功')}})// fs.readFile(,function(err,data))Message.find(function(err, data) {if (err) {console.log('数据库读取失败')} else {// 读取的时候返回的是数组[ ]console.log('数据库读取成功')console.log(data)}})
提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海