nodejs-7. mongoDB数据库
MongoDB
一、概念:
1. 介绍: 是一个由C++语言编写的基于分布式文件存储的数据库
2. 作用: 方便存取数据
3. 下载和安装
3.1下载
64 bit :https://www.mongodb.com/download-center?jmp=nav#community
32 bit:https://www.mongodb.org/dl/win32/
3.2 安装
双击一路下一步
4. mongoDB图形化界面工具:RoboMongo ==> 下载官网 https://robomongo.org/
5.术语介绍
database 数据库
collection 集合
document 文档 ==> json
field 字段 ==> {name: 'xiaohigh'}
★ 文档字段允许的字段类型:
String、Number、Date、Buffer、Boolean、Mixed、ObjectId、Array
二、命令行操作
☆ bin 一般用来存放可执行命令,如 `/usr/bin /usr/local/bin`
1. 创建文件夹 c:/data/db
2. 启动数据库服务
第一种情况:未配置环境变量
命令行下进入 mongodb 的bin命令目录 ==> cd C:\Program Files\MongoDB\Server\3.6\bin
运行 mongod 命令
(1) 不指定数据存放位置,默认c:/data/db (需要提前创建db文件夹,否则出错) : $ mongod
(2) 指定存放位置,用--dbpath指定: $ mongod --dbpath=c:/data/db1
第二种情况:配置环境变量
已配置环境变量可以在任意文件夹处输入mongod创建数据库命令
运行 mongod 命令
(1) 不指定数据存放位置,默认c:/data/db (需要提前创建db文件夹,否则出错) : $ mongod
(2) 指定存放位置,用--dbpath指定,可以使用相对路径,在项目文件夹位置打开命令窗口: $ mongod --dbpath=./db
★ 配置环境变量步骤:
(1) 找到mongoDB软件安装目录,找到bin文件夹,复制其绝对路径:
(2) 计算机图标右键属性 --> 高级系统设置--> 环境变量 --> path编辑-->复制(1)的bin路径黏贴进去,记得英文状态分号隔开,最后确定。
3. 连接数据库
命令行下进入 mongodb 的命令目录 cd C:\Program Files\MongoDB\Server\3.6\bin
运行 mongo 命令
mongo
mongo 114.215.149.168
4. 执行命令
4.1 数据库
切换数据库(不存在自动创建) use dbname
显示所有的数据库 show dbs
显示当前的数据库 db
删除数据库
use dbname
db.dropDatabase();
4.2 集合
创建集合 db.createCollection('users');
查看所有集合 show collections
删除集合 db.users.drop()
修改名称 db.users.renameCollection('goods');
4.3 文档
插入文档
db.users.insert({name:'xiaoming'})
db.users.insertMany([
{name: 'xiaoA'},
{name: 'xiaoB'},
])
获取当前集合的所有文档 db.users.find();
删除文档 db.users.remove({name: 'xiaoA'});
更新文档 db.users.update({name: 'xiaoB'}, {$set: {age: 30}} );
查询文档
条件
等于 db.goods.find({id:100})
小于 db.goods.find({id: {$lt: 100}})
大于 db.goods.find({id: {$gt: 100}})
小于等于 db.goods.find({id: {$lte: 100}})
大于等于 db.goods.find({id: {$gte: 100}})
不等于 db.goods.find({id:{$ne: 100}});
模糊查询 db.goods.find({title: {$regex:/立领/}}).limit(5)
逻辑与 db.goods.find({title: {$regex: /连衣裙/}, price: {$lt: 100}});
(注意:逻辑与必须要安装顺序添加条件,比如说:price: {$gt: 50},price: {$lt: 100}) ,反之输出不正确。
逻辑或 db.goods.find({$or: [{title:{$regex:/春季/}}, {price:{$gt:100}}]});
字段筛选 :设定要读取的字段,_id主键是默认返回的,若不要: _id:0
db.goods.find({}, {title:1, _id: 0}).pretty();
截取 : 一般用于分页效果
db.goods.find().limit(5)
db.goods.find().skip(5).limit(5)
排序: 1是正序,-1是倒序
db.goods.find().sort({id:-1})
db.goods.find().sort({id:1})
格式化输出
db.goods.find().pretty()
三、mongoDB数据导出导入:
导出命令: mongodump -d db6 -o "C:\testdata"
导入命令: mongorestore -d "db6-bak" C:\testdata
1、概述:mongoexport命令行用于数据的导出,默认导出的文件格式为JSON格式。当然也可以指定特定的文件格式(可导出为txt或csv)。
2、语法 C:\Users\xdl\Desktop\express\mongooseDeno> mongoexport --help
说明:
-h:数据库宿主机的IP
-u:数据库用户名
-p:数据库密码
-d:数据库名字
-c:集合的名字
-f:导出的列名
-q:导出数据的过滤条件
--csv:导出格式为csv
3. 进行导出操作,默认导出的是JSON格式的数据: mongoexport -d db6 -c articles -o ./data/articles.dat
上述命令行:从db6数据库中导出集合为articles的数据,保存文件到当前data文件夹的articles.dat中。
下面是导出csv格式的命令:mongoexport -d db6 -c articles -o ./data/articles.csv
4.查看导出文件内容命令: type articles.dat
5. 进行导入操作: mongoimport -d db7 -c articles --type csv --headerline --file articles.csv