您的位置:首页 > 数据库 > Mongodb

05_node.js-MongoDB命令、数据库操作步骤

2019-08-20 11:00 337 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_37970964/article/details/99825592

1、MongoDB命令

  • db.webs.find().sort({age:-1})
    降序
  • db.webs.find().skip(2)
    从下标为2开始
  • db.webs.find().limit(2)
    从开始到2结束 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: