Node.js使用mongodb操作MongoDB数据库

简介: Node.js使用mongodb操作MongoDB数据库

安装

npm i mongodb

文档给出的示例是通过回调函数操作的

这里给出async/await 操作方式,写起来会舒服很多

代码实例

const { MongoClient, ObjectId } = require('mongodb')


// 配置连接参数
const url = "mongodb://localhost:27017";
const options = { useNewUrlParser: true, useUnifiedTopology: true }


async function func() {
// 连接数据库
const client = await MongoClient.connect(url, options)

// 获取库、集合
const data = client.db("data");
const student = data.collection("student")

/**
* 写操作
*/
// 插入数据 insertOne insertMany
const result1 = await student.insertOne(
{ 'name': "Tom", age: 23 }
)
console.log(result1.insertedId);
// 5e8afa00e473da5ac1c0a9b7

// 更新数据 updateOne updateMany
const result2 = await student.updateOne(
{ _id: ObjectId('5e8af9dbda2c0b5aacb9ff1c') },
{ $set: { name: "Jack" } }
)
console.log(result2.modifiedCount); // 1

// 删除数据 deleteOne deleteMany
const result3 = await student.deleteOne(
{ _id: ObjectId('5e8af9dbda2c0b5aacb9ff1c') }
)
console.log(result3.deletedCount); // 1

/**
* 读操作
*/
// 查询数据 findOne find
const result4 = await student.findOne(
{ 'name': "Tom" }
)
console.log(result4);
// { _id: 5e8af9e8007ee05aad2b641f, name: 'Tom', age: 23 }

// 排序:升序(1) 降序(-1), 分页
const result5 = await student.find(
{ 'name': "Tom" }
).skip(2).limit(2).sort({ age: -1 }).toArray()
console.log(result5);
// [
// { _id: 5e8afa00e473da5ac1c0a9b7, name: 'Tom', age: 23 },
// { _id: 5e8afaab247c7c5b0530143e, name: 'Tom', age: 23 }
// ]

// 关闭连接
client.close()
}


func()

参考

Node.js 连接 MongoDB

            </div>
目录
相关文章
默认网关填了不能保存问题秒解
周末的休息,电脑也跟着一起休息了起来,晕晕乎乎了两天,没想到电脑也受到了感染,变成了中毒的状态,具体特征表现为:默认网关填写之后确定不能保存;当然电脑也就不能够通过网络与外网或者局域网通信了~
|
监控 Android开发
【Android 开发入门】android studio 控制台打印输出日志
有些情况下,不方便使用断点的方式来调试,而是希望在控制台打印输出日志,使用过Eclipse的同学都知道Java可以使用 System.out.println(""); 来在控制台打印输出日志,但是在android studio中却是不行的,还是有差别的,那应该用什么呢? android.util.Log 在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。
3235 0
|
机器学习/深度学习 人工智能 自然语言处理
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
通过利用Transformer中间层的隐藏状态,研究提出了层增强分类(LEC)技术,该技术能够以极少的训练样本和参数实现高效的内容安全和提示注入攻击分类,显著提升了模型的性能,并验证了其跨架构和领域的泛化能力。
432 11
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
|
存储 安全 搜索推荐
【JavaWeb 秘籍】Cookie vs Session:揭秘 Web 会话管理的奥秘与实战指南!
【8月更文挑战第24天】本文以问答形式深入探讨了Web开发中关键的会话管理技术——Cookie与Session。首先解释了两者的基本概念及工作原理,随后对比分析了它们在存储位置、安全性及容量上的差异。接着,通过示例代码详细介绍了如何在JavaWeb环境中实现Cookie与Session的操作,包括创建与读取过程。最后,针对不同应用场景提供了选择使用Cookie或Session的指导建议,并提出了保障二者安全性的措施。阅读本文可帮助开发者更好地理解并应用这两种技术。
300 1
|
机器学习/深度学习 算法 数据库
R-CNN论文详解(入门目标检测必读)
R-CNN论文详解(入门目标检测必读)
R-CNN论文详解(入门目标检测必读)
|
安全 网络协议 算法
电脑病毒木马的清除和防范方法
电脑病毒木马的清除和防范方法
3019 0
电脑病毒木马的清除和防范方法
|
资源调度 自然语言处理 JavaScript
源码分享-基于vue+Ant Design管理平台
源码分享-基于vue+Ant Design管理平台
691 0
源码分享-基于vue+Ant Design管理平台
|
存储 缓存 Java
Java中的链表
Java中的链表
269 0
|
存储 编译器 C语言
C语言程序设计——字符输出函数putchar()
C语言程序设计——字符输出函数putchar()
|
存储 缓存 数据安全/隐私保护
移动应用中的离线模式是一种重要的功能
【5月更文挑战第16天】移动应用的离线模式通过数据缓存和存储确保无网时仍能使用部分功能。数据同步采用延迟策略,用户更改信息后在网络恢复时同步至服务器。为保障安全,敏感数据加密存储并定期备份。开发者还需关注用户体验、电量性能及错误处理,以实现稳定可靠的离线模式,提升用户体验。
1266 0