数据库:
数据库:专门用来存储数据,查询数据,为其他的应用程序提供对应的数据服务;
数据库可以分为两类:sqlite数据库 与 nosql数据库;
sqlite:传统的关系型数据库,mysql,sqlServer,oracle,都是sql数据库;
使用sql(structure query language)主要的特点是语言结构
nosql:(not only sql)不仅仅是数据库
mongodb属于nosql:文档行数据库,直接存对象,使用javascript来进行操作;
数据库语句是作为与数据库进行数据交互的唯一标准语言;
MongoDB的安装和配置:
1. 安装MongoDB(略)
2. 环境变量配置
(1)鼠标右键选择“计算机”“属性”,会弹出一个框,点击 “高级系统设置”,会弹出一个系统属性,找到环境变量,再找到系统变量里面的Path,点击编辑;
(2)找到自己安装的目录,一定要进入bin这个目录里面,把这个目录拷贝到变量值里面,后面要加一个“;”,然后点击确定;(到此环境变量配好了)
3. 创建数据库文件的存放位置
在data的目录下,创建一个db文件夹 D:\MongoDB\data\db
4. 启动MongoDB服务
(1)打开cmd命令行护着用Windows+R键打开,输入cmd;
(2)进入D盘(就是你安装的目录),D:\MongoDB\bin;(一定要先进入D盘,cd到你的目录 cd MongoDB,然后在cd bin这个目录下);
(3)输入命令启动MongoDB,mongod --dbpath D:\MongoDB\data\db 这个是你安装的目录 ,回车;
(4)在浏览器输入http://localhost:27017,如果在浏览器中出现下面一段英文说明成功了;
It looks like you are trying to access MongoDB over HTTP on the native driver port.
5. 配置本地windows MongoDB 服务
这样可设置为 开机自启动,可直接手动启动关闭,可通过命令行net start MongoDB 启动。该配置会大大方便。也不要在进入bin的目录下启动了;
(1)先在data文件下创建一个新文件夹log(用来存放日志文件)
(2)在MongoDB新建配置文件mongo.config,这个是和bin目录同级;
(3)用记事本打开mongo.config ,并输入下面两个命令,然后保存
dbpath=D:\MongoDB\data\db
logpath=D:\MongoDB\data\log\mongo.log
(4)用管理员身份打开cmd,然后一次进入你的bin的目录下D:\MongoDB\bin
输入:
mongod -dbpath "D:\MongoDB\data\db" -logpath "D:\MongoDB\data\log\mongo.log" -install -serviceName "MongoDB"
如果输入命令出现错误的话,先删除服务sc delete MongoDB,再次输入上个命令就好了;
(5)当我们通过输入net start MongoDB启动的时候给我报错时:
解决方法:
在MongoDB>data>db找到这个目录,删除mongodb.lock这个文件;
删除这个文件之后,再次运行 net start MongoDB 这个命令,服务已经能启动了,说明MongoDB已经配置好了;
MongoDB常用命令:
net start MongoDB 开启服务
net stop MongoDB 关闭服务
show dbs 用于查询mongodb中所有的数据库
use students 创建数据库名字
db 显示当前数据库
show collections 查看当前数据库中的所有表
db.createCollection("xxxx") 在当前数据库中创建一张表,表名叫xxxx
db.表名.insert({}) 在当前数据库下的表中插入一条数据,数据格式为对象格式
db.表名.find() 查询表中所有的数据
条件查询:
db.表名.find({name: "xxx"}) 查询出所有name为xxx的数据
db.表名.find({name: "xxx", age: 25}) 查询出表中叫xxx年龄为25的数据
db.表名.find({name: /^小/}) 查询表中所有小开头的数据,查询的条件可以是正则表达式
db.表名.find({age: {$lt:30}}) 查询表中年龄小于30的人 ($lt小于 $gt大于 $lte小于等于 $gte大于等于)
db.表名.find({age: {$lt: 60, $gt: 20}}) 年龄在20~~60之间的数据
db.表名.find({}, {name: 1}) 代表查询表中的数据但是只要name列
db.表名.find().count() 本次查询结果一共多少条
db.表名.find().sort({age: 1}) 把表中所有的age按升序排列 -1是降序
db.表名.find().skip(n).limit(m) 从查询结果中,挑过前面n条取后面m条,一般都是分页查询用
db.表名.remove({k: v}) 删除表中所有符合条件的数据,大部分都是以主键(_id)作为删除条件
db.表名.remove({k: v}) 删除表中所有符合条件的数据,大部分都是以主键(_id)作为删除条件
db.表名.update({name: "小"}, {$set: {age: 100}}) 将表中姓名为小的人的年龄改为100
ps:
nodejs在操作mongodb的时候还是以对象的形式去关联,但是很多方法都是和sql语句方法一样;