koa2入门系列教程(一)mongoDB的使用

koa作为下一代web应用框架,尤其是使用了ES7的async和await,更是把简洁渗入血脉。在开始说koa之前,我们先讲讲koa的好搭档MongoDB

mongoBD服务配置(window)

在MongoDB安装目录下bin同级下,新建目录

1
2
3
4
mkdir data
mkdir log
cd log
touch mongo.log

添加环境变量

此电脑 => 属性 => 高级系统设置 => 环境变量 => path

1
C:\Program Files\MongoDB\Server\3.4\bin

注册为服务,开机自动启动

以管理员权限启动CMD

1
mongod --dbpath "C:\Program Files\MongoDB\Server\3.4\data" --logpath "C:\Program Files\MongoDB\Server\3.4\log\mongo.log" --logappend --install --serviceName "MongoDB"

搜索MongoDB服务,设置启动

测试

1
mongo

注销服务

1
mongod.exe --remove --serviceName "MongoDB"

基础命令

查看所有库

1
2
3
4
show dbs

admin 0.000GB
local 0.000GB

使用库(没有则新建库)

1
2
3
use app

switched to db app

创建一条数据并查找出来

1
2
3
4
5
6
7
8
db.user.save({name: "chaoshuai"})

WriteResult({ "nInserted" : 1 })


db.user.find()

{ "_id" : ObjectId("59d87fc36f962cd49948149c"), "name" : "chaoshuai" }

更新一条数据(没有$set:{},会覆盖所有属性)

1
db.user.update({"_id" : ObjectId("59d87fc36f962cd49948149c"},{$set:{"name": "xiaoshuai"}})

删除记录(条件为空不会执行)

1
db.user.remove({name: 'xiaoshuai'})

删除表

1
db.mytable.drop();

创建用户

1
db.createUser({user: 'copy',pwd: '123', roles:[{role:'dbOwner',db:'myblog'}]})

mongoose 建模和操作数据库

连接数据库

1
2
const db = 'mongodb://localhost/app'
mongoose.connect(db, {useMongoClient:true})

定义Schema(不具备操作数据库的能力)

1
2
3
4
5
const mongoose = require('mongoose')
const UserSchema = new mongoose.Schema({
name: String,
age: Number
})

Schema Types内置类型如下:

  String

  Number

  Boolean | Bool

  Array

  Buffer

  Date

  ObjectId | Oid

  Mixed

由Schema生成Model(可以对数据库的操作)

1
const userModel = mongoose.model('User',UserSchema)

生成新用户并保存

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const mongoose = require('mongoose')
const User = mongoose.model('User')
const user = new User({
name: 'chaoshuai',
age: 20
})

try{
user.save()
} catch (e) {
console.log('保存信息出错')
return
}
console.log('保存成功')