已解决
【mongoose】mongoose 基本使用
来自网友在路上 173873提问 提问时间:2023-11-07 03:50:39阅读次数: 73
最佳答案 问答题库738位专家为你答疑解惑
1. 连接数据库
// 1. 安装 mongoose
// 2. 导入 mongoose
const mongoose = require('mongoose')
// 3. 连接 mongodb 服务
mongoose.connect('mongodb://127.0.0.1:27017/xx_project')
// 4. 设置回调 .on 一直重复连接 .once 只连接一次
mongoose.connection.on('open', () => {// console.log('数据库连接成功')// 5. 创建类型约束模型对象let BookSchema = new mongoose.Schema({name: String,author: String,price: Number})// 6. 创建模型对象 对文档操作的封装对象let BookModel = mongoose.model('books', BookSchema)// 7. 新增BookModel.create({name: '《算法导论》',author: 'Thomas H.Cormen',price: 100}).then(data => {console.log(data)// 8. 关闭数据库连接(项目运行时不添加该代码)mongoose.disconnect()}).catch(err => {console.log(err)// 8. 关闭数据库连接(项目运行时不添加该代码)mongoose.disconnect()})
})
mongoose.connection.on('error', () => {console.log('数据库连接失败')
})
mongoose.connection.on('close', () => {console.log('数据库连接关闭')
})
2. 增删改查
2.1 增加
mongoose 会使用集合名称的负数,创建集合。
BookModel.create({name: '《算法导论》',author: 'Thomas H.Cormen',price: 100}).then(data => {console.log(data)// 8. 关闭数据库连接(项目运行时不添加该代码)mongoose.disconnect()}).catch(err => {console.log(err)// 8. 关闭数据库连接(项目运行时不添加该代码)mongoose.disconnect()})
BookModel.insertMany([{name: '《算法导论》',author: 'Thomas H.Cormen',price: 100},{name: '《数据结构与算法分析》',author: 'Mark Allen Weis',price: 100}])
2.2 删除
BookModel.deleteOne({ _id: '6548d59fe5c1c46771893963' })
BookModel.deleteMany({author:'Jay'})
2.3 更新
BookModel.updateOne({name: '《算法》'
}, {$set: {price: 100000}
})
BookModel.updateMany({author: 'Leehom Wang'}, {author: '王力宏'})
2.4 查询
SongModel.findOne({author: '王力宏'})
SongModel.findById('5dd662b5381fc316b44ce167')
SongModel.find()
SongModel.find({author: '王力宏'})
3. 字段设置
title: {type: String,required: true, // 必填default: '匿名' // 默认值
},
gender: {type: String,enum: ['male', 'female'] // 枚举值
},
username: {type: String,unique: true // 唯一值
},
4. 条件控制
4.1 运算符
在 mongodb 不能 > < >= <= !== 等运算符,需要使用替代符号。
>
使用 $gt<
使用 $lt>=
使用 $gte<=
使用 $lte!==
使用 $ne
BookModel.find({id:{$gt:3}}); // id号比3大的所有的记录
4.2 逻辑运算
$or
逻辑或的情况
BookModel.find({$or:[{age:18},{age:24}]});
$and
逻辑与的情况
BookModel.find({$and: [{age: {$lt:20}}, {age: {$gt: 15}}]});
4.3 正则匹配
BookModel.find({name :/you/})
5. 个性化读取
方法可以链式调用。
5.1 字段筛选
1:显示
0:不显示
BookModel.find().select({name: 1, author: 1, _id: 0}).exec()
.then(data=> {console.log(data)
}).catch(err=> {console.log(err)
})
5.2 数据排序
1:升序
-1:倒序
BookModel.find().sort({price: 1}).exec()
.then(data=> {console.log(data)
}).catch(err=> {console.log(err)
})
5.3 数据截取
返回开始三个对象:
BookModel.find().sort({price: 1}).limit(3).exec()
.then(data=> {console.log(data)
}).catch(err=> {console.log(err)
})
取出第四到六个:
BookModel.find().sort({ price: 1 }).skip(3).limit(3).exec()
.then(data => {console.log(data)
}).catch(err => {console.log(err)
})
6. 代码模块化
查看全文
99%的人还看了
相似问题
- 在Spring Boot中使用国产数据库连接池Druid
- 数据库连接池大小的调整原则
- JDBC数据库连接---附通用的CRUD类
- MySQL数据库连接工具—MySQL Workbench
- 数据库连接池有什么用?它有哪些关键参数?
- luffy项目之后台项目搭建、目录调整、封装日志、全局异常、Response、数据库连接
- VSCode Intellij IDEA CE 数据库连接
- mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池
- SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池
- php单独使用think-rom数据库 | thinkphp手动关闭数据库连接
猜你感兴趣
版权申明
本文"【mongoose】mongoose 基本使用":http://eshow365.cn/6-34187-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!