nodejs数据库的使用

数据库

mysql

关系数据库,二维表,不存在子表

sql语句

建库

CREATE DATABASE  `2017-12-6` DEFAULT CHARACTER SET armscii8 COLLATE armscii8_general_ci;

建表

CREATE TABLE  `2020-12-6`.`user` (
					`name` VARCHAR( 32 ) NOT NULL ,
					`age` INT( 3 ) NOT NULL ,
					`address` VARCHAR( 128 ) NOT NULL
					) ENGINE = INNODB

INSERT INTO 表 (字段列表) VALUES(值列表)
INSERT INTO user (name,age,address) VALUES('苏菲',38,'')

DELETE FROM 表 WHERE 字段名=值
DELETE FROM user WHERE name='alex'

UPDATE 表 SET 字段名=值 WHERE 字段名=值
UPDATE user set name='sufei' WHERE name='苏菲'

SELECT ? FROM 表
SELECT * FROM user  查所有

mongodb

非关系型数据库,又叫nosql,缓存型,使用场景多是解决大规模数据集合多重数据种类

  1. 下载 安装帮助

  2. 配置数据文件存储位置:

找到安装目录\Server\4.0\bin\ -> cmd回车-> mongod 回车->mongod --dbpath c:\data\db

data和db目录要手动创建

  1. 服务端启动: 可选

找到安装目录\Server\4.0\bin\ -> cmd回车-> mongod 回车

一般开启会默认启动

  1. 客户端启动:

找到安装目录\Server\4.0\bin\ -> cmd回车-> mongo 回车

  1. 环境变量 可选

为了在任意盘符下去都可以启动 mongod服务端|mongo客户端,把安装目录添加到环境变量

mysql vs mongodb

mysql mongoDb
database(库) database(库)
table(表) collection(集合)
row(一条数据) document(文档)
column(字段) field(区域)
二维表,每次存到磁盘 json,存在缓存,关闭时存到磁盘 存储方式

mongodb命令行操作 声明式 | obj.api()

库操作

: show dbs
  	db 查看当前库
建:	use 库名	   没有建,有就切换
删: db.dropDatabase()  删除当前库

集合(表)操作

建:db.createCollection('表名',{配置})
  //配置:{size:文件大小,capped:true,max:条数|文档数} capped定量
  //db.表(集合).isCapped() 返回 true/false 是否是定量
查:show collections / db.getCollectionNames()
删:db.|集合.drop()

文档(row)操作

db.集合.save({}) //添加一条
db.集合.insert({})  //添加一条
db.insertOne({}) //添加一条

db.集合.save([{},{}]) //多条
db.集合.insert([{},{}]) //多条
//insert  不会替换相同ID	save会

db.集合.deleteOne({要删数据条件描述}) //一条
db.集合.remove({},true)  //一条

db.集合.remove({要删数据条件描述}) //多条
db.集合.remove({}) //清空表

db.集合.udpate({查询条件},{替换条件},插入boolean,全替换boolean)

查询条件

{age:22} age == 22
{age:{KaTeX parse error: Expected 'EOF', got '}' at position 6: gt:22}̲} age > 22 {a…lt:22}} age < 22
{age:{KaTeX parse error: Expected 'EOF', got '}' at position 7: gte:22}̲} age>=22 {ag…lte:22}} age<=22
{age:{ l t e : 122 , lte:122, gte:22}} age<=122 && age>=22
{$or:[{age:22},{age:122}]} 22 or 122
{key:value,key2,value2} value && value2
{name:/正则/}

替换条件

{ s e t : , set:{数据}, inc:{age:1}}

所有:db.集合.find(条件)
条数: db.集合.find().count()
去重:db.集合.distinct(key)

db.集合.find({条件},{指定要显示列区域})

指定要显示列区域

username:1 显示这个区域,其他不显示

username:0 不显示这个区域,其他显示

_id 是默认显示

db.集合.find().sort({key:1,key2:-1}) //升
db.集合.find().sort({key:-1})	//降

限定

db.集合.find().limit(number)  //限定
db.集合.find().skip(number)	//跳过
db.集合.findOne()//找第一个
db.集合.find().limit(1)  //查询第一条

node + mongodb客户端

安装+引入

npm install mongodb -S
var mysql = require('mongodb');

实例化并连接

let mongoCt = mongodb.MongoClient;
mongoCt.connect('协议://地址:端口',回调(err,client)) //err 错误 client链接后的客户端

链接库和集合

let db = client.db('库名')
let user = db.collection('集合名');

集合操作

//user.API()  集合操作 	返回 对象

//增
	insertOne(对象数据,(err,res)=>{})  //res = 对象  
	insertMany(arr数据,(err,res)=>{}) //res = 对象  
    //res.result.n 结果  ok 状态
    //res.ops内容  数组
    //result.insertedId 插入后的id

//删:
  deleteOne({条件},(err,result)=>{})

//改:
  updateOne({条件},{更新后},(err,res)=>{})
  updateMany({条件},{更新后},(err,res)=>{})
  updateMany({条件},{更新后},{配置},(err,res)=>{})
    //配置: upsert:true 插入	projection:true 全局替换
//查:
  user.find({条件},{skip:1,limit:1,projection:{key:1}},(err,result)=>{result=对象})
  user.find({条件},{projection:{key:0}}).toArray((err,result)=>{reulst==arr})
  user.countDocuments((err,num)=>{num返回数量})

//排
  user.find(..).sort({key:-1}).toArray..
  user.find({},{projection:{},sort:{key:-1}}).toArray..

关闭库

client.close()

node + mongoose

一款mongodb客户端 官网 中文

可视化客户端

Express生成器

应用程序生成器、脚手架 、命令行工具、自动搭建项目环境的,无需手动

安装

npm install express-generator -g   

验证

express -h

生成环境

express -e 目录 | . 
	// . 当前目录创建 
	//-e 需要ejs模板引擎
	//express -f  强制在非空目录下创建
cd 目录
npm install 		//安装依赖包
npm start    
node ./bin/www

Express 应用程序生成器 中文网参考
通过应用生成器工具 express-generator 可以快速创建一个应用的骨架。

你可以通过 npx (包含在 Node.js 8.2.0 及更高版本中)命令来运行 Express 应用程序生成器。

$ npx express-generator
对于较老的 Node 版本,请通过 npm 将 Express 应用程序生成器安装到全局环境中并执行即可。

$ npm install -g express-generator
$ express
-h 参数可以列出所有可用的命令行参数:

$ express -h

Usage: express [options] [dir]

Options:

-h, --help          输出使用方法
    --version       输出版本号
-e, --ejs           添加对 ejs 模板引擎的支持
    --hbs           添加对 handlebars 模板引擎的支持
    --pug           添加对 pug 模板引擎的支持
-H, --hogan         添加对 hogan.js 模板引擎的支持
    --no-view       创建不带视图引擎的项目
-v, --view <engine> 添加对视图引擎(view) <engine> 的支持 (ejs|hbs|hjs|jade|pug|twig|vash) (默认是 jade 模板引擎)
-c, --css <engine>  添加样式表引擎 <engine> 的支持 (less|stylus|compass|sass) (默认是普通的 css 文件)
    --git           添加 .gitignore
-f, --force         强制在非空目录下创建

例如,如下命令创建了一个名称为 myapp 的 Express 应用。此应用将在当前目录下的 myapp 目录中创建,并且设置为使用 Pug 模板引擎(view engine):

$ express --view=pug myapp

create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.pug
create : myapp/views/layout.pug
create : myapp/views/error.pug
create : myapp/bin
create : myapp/bin/www
然后安装所有依赖包:

$ cd myapp
$ npm install
在 MacOS 或 Linux 中,通过如下命令启动此应用:

$ DEBUG=myapp:* npm start
在 Windows 中,通过如下命令启动此应用:

set DEBUG=myapp:* & npm start
然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了。

通过生成器创建的应用一般都有如下目录结构:

.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.pug
├── index.pug
└── layout.pug

7 directories, 9 files

发布了21 篇原创文章 · 获赞 0 · 访问量 299

猜你喜欢

转载自blog.csdn.net/weixin_43861707/article/details/104868318
今日推荐