1、MongoDB命令
db.webs.find().sort({age:-1})
降序db.webs.find().skip(2)
从下标为2开始db.webs.find().limit(2)
从开始到2结束- sort()的优先级比skip和limit高
所以无论书写先后,都是先排序
- sort()的优先级比skip和limit高
2、node是什么模型?
——对象模型
3、express中req,body失效问题
- post方法在express中是通过req,body来获取前端发来的数据,但是这个req,body有时会失效,因为高版本的express生成器会自动配置一个body-parser的中间件,低版本就要手动配置;
- 失效时去npmjs官网搜body-parser,然后安装
4、数据库操作步骤:
1、连接数据库
mongoose.connect(`mongodb://${HOST}:${PORT}/${DATABASE}`, (error) => {
if (error) {
console.log("数据库连接失败!");
} else {
console.log("数据库连接成功!");
}
})
2、定义骨架
const schema = new moongo.Shcema
3、定义模型
const userModel = mongoose.model("users",userSchema)
4、创建实体
const userEntity = new userModel()
5、增删改查
const user = {
add(data) {
return new Promise((resolve, reject) => {
userModel.find({}, (error, docs) => {
const flag = docs.some(item => data.username === item.username)
if (flag) {
resolve({
info: "用户名已存在",
status: 0
});
} else {
const userEntity = new userModel();
userEntity.username = data.username;
userEntity.password = data.password;
userEntity.save((error) => {
if (error) {
resolve({
info: "保存失败",
status: 2
});
} else {
resolve({
info: "保存成功",
status: 1
});
}
})
}
});
})
},
remove(data) {
return new Promise((resolve, reject) => {
userModel.find({
username: data.username,
password: data.password
}, (error, docs) => {
if (docs.length) {
var id = docs[0]._id;
userModel.findById(id, (error, doc) => {
doc.remove(error => {
if (error) {
resolve({
info: "删除失败",
status: 2
})
} else {
resolve({
info: "删除成功",
status: 1
})
}
})
})
} else {
resolve({
status: 0,
info: "数据库中不存在这条数据"
})
}
})
});
},
modify(data) {
return new Promise((resolve, reject) => {
userModel.find({
username: data.username
}, (error, docs) => {
if (docs.length) {
var id = docs[0]._id;
userModel.findById(id, (error, doc) => {
doc.password = data.password;
doc.save(error => {
if (error) {
resolve({
info: "修改失败",
status: 2
})
} else {
resolve({
info: "修改成功",
status: 1
})
}
})
})
} else {
resolve({
status: 0,
info: "数据库中不存在这条数据"
})
}
})
})
}
}
6、导出模型
module.exports = users;
5、底层数据外用:
- 底层
new Promise((resolve,reject)=>{})
- 外层结合async 和 await