Node.js使用mongodb操作MongoDB数据库-阿里云开发者社区

开发者社区> 开发者小助手-bz7> 正文

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
06.Eclipse下Ndk开发(使用fmod播放声音)
(创建于2017/12/26) 1.搜索fmod,并下载代码 5199906.png 2.拿到Android相关的代码后,打开目录结构 5291234.
1067 0
07.Android Studio下Ndk开发(使用fmod播放声音)
(创建于2017/12/28) 已实现 注意几点: 1.main下cpp文件夹放置c文件和相关头文件 2.main下JniLibs文件夹放置第三方so文件 3.
1096 0
node-mysql操作transactions的实例
关于mysql的事务,可查看上一篇文章未尾>> 先更新一条数据 UPDATE user_info SET userName = 'kk' WHERE userId = 1;SELECT * FROM user_info   现在的数据   写一个事务,只选中前面的语句执行:   SET AUTOCOMMIT=0;START TRANSACTION;SELECT * FROM user_info FOR UPDATE;COMMIT; 如果使用node.js执行,控制台上会看到待执行的sql处于等待状态:  上面报错,是因为超时了。
804 0
08.Eclipse下Ndk开发(使用fmod实现QQ变声功能)
(创建于2017/12/30) 1.编写native package org.fmod.example; public class EffectUtils { //音效的类型 public static final int ...
905 0
5分钟使用Moodle搭建在线学习管理
Moodle 是以课程为中心的组织模式,围绕课程的创建、关联老师和学生,开展教学和学习活动,来构建强大的在线学习管理平台。Moodle 通过对课程关联资源和活动,来设置课程的PPT、视频等教学资源和作业、考试、反馈等教学活动。Moodle 还有提供很多实用的功能,如更多的系统选项、课程能力模型、成绩报告及更多的课程活动等。
178 0
使用Verilog实现FPGA偶数/奇数分频电路设计并使用modelsim仿真
本人地大14级师兄,如果有学弟学妹搜到这个评论一个呗! 一、设计要求 编写VerilogHDL程序,实现如下功能: 输入时钟信号和复位/信号,实现4分频/5分频,占空比为1:1.   二、设计思路 1.偶数分频 假设为N分频,计数到N/2-1时,时钟翻转、计数清零,如此循环就可以得到N(偶)分频   2.奇数分频(占空比为50%) (1)假设为N分频,取一个进行上升沿触发的模N计数,触发时钟翻转后,经过(N-1)/2再次进行翻转,得到一个占空比非50%奇数N频时钟。
1747 0
使用SSL安全链接Mysql数据库
一、使用SSL安全连接 To use SSL connections between the MySQL server and client programs, your system must support either OpenSSL or ...
8277 0
743
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载