数据库:
Mongo[非关系型数据库]
docker pull mongo:latest//--auth指的是登录需要用户名和密码docker run -itd --name mongo -p 27017:27017 mongo --auth//进入数据库容器docker exec -it mongo mongo admin//创建用户db.createUser({user:'admin',pwd:'admin',roles:[{ role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});//验证是否能成功连接 ,返回1则成功db.auth('admin','admin');
- 使用navcat连接的过程中一直报错:No suitable servers found,参数都是正确的,但是一直报错
原因:docker容器映射的27017端口没开,导致连接失败
- 插入数据的时候报错:
```sql
db.todos.insert({“title”:”task1”}) WriteCommandError({
"ok" : 0,"errmsg" : "command insert requires authentication","code" : 13,"codeName" : "Unauthorized"})
原因:没有使用db.auth(用户名,密码)命令登录命令:| show dbs | 展示所有数据库 || --- | --- || db | 展示当前所在数据库 || use 数据库名 | 切换到指定数据库,如果没有的话直接创建 || db.auth(用户名,密码) | 登录,必须在use admin之后进行登录 || db.集合名【mysql中的表】.insert({json数据}) | 往集合里添加数据 || db.集合名.find() | 显示集合下的所有数据 || db.集合名.findOne() | 显示集合下的第一条数据 || db.集合名.drop() | 删除当前集合 || db.dropDatabase() | 删除当前数据库[一般不用] || db.集合名.remove({条件}) | 删除集合中的文件数据 |批量插入:使用insert,不过参数是一个数组<br />修改数据:update修改器```sql//修改值db.workmate.update({"name":"MinJie"},{"$set":{"skill.skillThree":'word'}})//删除字段db.workmate.update({"name":"MinJie"},{$unset:{"age":''}})//值计算db.workmate.update({"name":"MinJie"},{$inc:{"age":-2}})//插入一列多行db.workmate.update({},{$set:{interset:[]}},{multi:true})//如果该条数据不存在,就新插入db.workmate.update({name:'xiaoWang'},{$set:{age:20}},{upsert:true})
后端:
mongoose:
schema:用来定义表的模板,实现和MongoDB数据库的映射,key-value的json数据
String :字符串类型Number :数字类型Date : 日期类型Boolean: 布尔类型Buffer : NodeJS buffer 类型ObjectID : 主键,一种特殊而且非常重要的类型Mixed :混合类型Array :集合类型
Model:具备表操作能力的一个集合,是Mongoose的核心能力
entity:类似record,由model创建的实体
Koa:
【注意】
postman的post请求参数名和参数值都必须使用双引号,不加或加单引号都会导致bad request

