数据库(database)是一个按照数据结构进行数据的组织,管理,存放数据的仓库。
按照关系模型存储的数据库,数据与数据之间的关系非常密切,可以实现跨数据表查询数据,占用更少的硬盘实现更多的数据存储
t-sql标准的结构化查询语言,是关系型数据库的通用查询语言
常见的关系型数据库:mysql sql-server access sqlite.....
结构:一台服务器==》数据库==》数据表==》数据行
不按关系模型存储的数据库,统称为nosql
第一层含义:不是sql,不是关系型数据库
第二层含义:not only sql,不仅仅是sql
结构:一台服务器==》数据库===》集合==》文档
在非系统盘根目录创建一个文件夹mongodb,在创建两个子文件夹db和log-->mongod.log
1.使用命令挂载服务
mongod --dbpath "d:\mongodb\db" --logpath "d:\mongodb\log\mongod.log" --install --servicename "mongodb"
2.使用服务窗口界面启动服务
在计算机点右键管理--->服务与应用程序---->服务----->找到mongodb右键启用
3.使用命令行启动服务
net start mongodb 开启服务
net stop mongodb 关闭服务
sc delete mongodb 卸载服务
32位操作系统 必须加 --storageengine mmapv1
windows8 windows10 打开命令行用管理员方式打开
db.user.insert({"name":"admin","password":"12342423"}); db.user.save({"username":"admin","password":"12342423"}); /* insert和save方法的区别: .insert() 向集合中插入一条数据【推荐使用】 .save() 向集合中添加一条数据,如果集合中已存在该数据则更新 */
db.user.update({"name":"张三"},{"age":18}) //改动整条数据
db.user.remove({"age":"18"}) // 注意:由于删除和更新会对数据造成极大影响,需谨慎
db.集合名.find({字段名:{$gt:值}})
db.集合名.find({字段名:{$gte:值}})
db.集合名.find({字段名:{$lt:值}})
db.集合名.find({字段名:{$lte:值}})
db.集合名.find({字段名:{$gt:小值,$lt:大值}})
db.集合名.find({字段名:{$in:[1,2,3,4]}})
db.集合名.find({字段名:{$size:长度}})
db.集合名.find({字段名:{$exists:true|false}})
db.集合名.find({字段名:{$or:[{...},{...},...]}})
db.集合名.find().sort({"key":-1,"ke2":1,...}) //1代表升序,-1代表降序
db.集合名.find().limit('数字') //限定输出数据的条数 db.集合名.find().skip('数字') //跳过指定的数据条数 //这两个限定输出的语句主要用于分页
db.集合名.find({字段名:/值/ig}) //使用正则表达式
是一个基于nodejs的用于操作mongodb数据库的第三方模块
npm install mongoose
在routes目录下,在需要用到数据库的路由添加如下代码:
var mongoose = require('mongoose'); //连接数据库 mongoose.connect("mongodb://主机名:27017/数据库名",function(err){ if(err){ throw err; }else{ console.log("数据库连接成功"); } }) //定义骨架 //schema骨架是一种数据结构声明,不具备数据库的操作能力 //骨架类型:string、number、date、buffer、objectid、array... var schema = new mongoose.schema({ 字段名:类型, ... }) //创建模型 //model模型是一种根据骨架创建出的一个模型,具备数据库操作能力,通常用于读取数据库 var listmodel = mongoose.model("模型名称","骨架","集合名称"); //创建实体entity //entity实体是根据模型创建出的一个实例,具备数据库操作能力,通常用于写数据(新增,修改,删除) var list = new listmodel(); list.属性名 = 值; list.save(); //将添到实例上的属性保存到数据库中 list.remove();//删除数据
//根据条件进行数据查询,可以找出多条数据 模型.find({条件},function(err,data){ //data是从数据库中读取到的数据 //find方法找出来的数据一定是一个数组,即使没有数据也是一个空数组 }) //通过id查找一条数据 模型.findbyid('id',function(err,data){ //find方法找出来的数据一定是一个对象 }) //另一种常用方法(为了实现更好的链式调用) 模型.find({条件}).exec(function(err,data){ })
var list = new listmodel(); //根据模型创建实例 list.name = '张三'; list.age =23; //将新增的数据保存到数据库中 list.save(function(err){ console.log("新增成功"); }) //注意:骨架中没有定义的属性及类型,不能添加到数据库
/* 思想: 第一步:找出要被删除的数据, 第二部:调用remove()方法删除数据 */
如对本文有疑问, 点击进行留言回复!!
使用纯前端JavaScript实现Excel导入导出方法过程详解
微信小程序完美解决scroll-view高度自适应问题的方法
网友评论