MongoDB

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 【10月更文挑战第28天】

在Node.js中连接MongoDB并进行数据库操作是一个常见的任务。以下是如何使用Node.js来连接MongoDB,并执行一些基本的数据库操作(如创建数据库、插入文档、查询文档、更新文档和删除文档)的步骤和代码示例。

1. 安装MongoDB驱动

首先,你需要安装MongoDB的Node.js驱动。如果你使用的是淘宝的npm镜像(cnpm),可以使用以下命令安装:

cnpm install mongodb

2. 连接到MongoDB

使用MongoClient对象连接到MongoDB数据库。以下是连接的基本代码示例:

const {
    MongoClient } = require('mongodb');

async function main() {
   
    // MongoDB 连接 URI
    const uri = "mongodb://localhost:27017";
    // 创建一个新的 MongoClient
    const client = new MongoClient(uri, {
    useNewUrlParser: true, useUnifiedTopology: true });

    try {
   
        // 连接到 MongoDB 服务器
        await client.connect();
        console.log("成功连接到服务器");

        // 指定数据库
        const database = client.db('runoob');

        // 这里可以执行数据库操作
    } finally {
   
        // 确保在完成后关闭连接
        await client.close();
    }
}

main().catch(console.error);

3. 创建数据库和集合

在MongoDB中,数据库和集合(类似于关系数据库中的表)是在需要时自动创建的。你可以通过执行插入操作来创建它们:

const collection = database.collection('exampleCollection');
const doc = {
    name: "Example", type: "Test" };
const result = await collection.insertOne(doc);
console.log(`新文档已创建,ID 为: ${
     result.insertedId}`);

4. 查询文档

以下是如何查询集合中的文档:

const findResult = await collection.find({
   }).toArray();
console.log('查询到的文档:', findResult);

5. 更新文档

以下是如何更新集合中的文档:

const updateResult = await collection.updateOne({
    name: "Example" }, {
    $set: {
    type: "Updated" } });
console.log(`更新的文档数量: ${
     updateResult.matchedCount}`);

6. 删除文档

以下是如何删除集合中的文档:

const deleteResult = await collection.deleteOne({
    name: "Example" });
console.log(`删除的文档数量: ${
     deleteResult.deletedCount}`);

完整代码示例

结合以上步骤,以下是一个完整的代码示例,展示了如何连接到MongoDB,创建数据库和集合,插入、查询、更新和删除文档:

const {
    MongoClient } = require('mongodb');

async function main() {
   
    const uri = "mongodb://localhost:27017";
    const client = new MongoClient(uri, {
    useNewUrlParser: true, useUnifiedTopology: true });

    try {
   
        await client.connect();
        console.log("成功连接到服务器");
        const database = client.db('runoob');
        const collection = database.collection('exampleCollection');

        // 插入文档
        const doc = {
    name: "Example", type: "Test" };
        const insertResult = await collection.insertOne(doc);
        console.log(`新文档已创建,ID 为: ${
     insertResult.insertedId}`);

        // 查询文档
        const findResult = await collection.find({
   }).toArray();
        console.log('查询到的文档:', findResult);

        // 更新文档
        const updateResult = await collection.updateOne({
    name: "Example" }, {
    $set: {
    type: "Updated" } });
        console.log(`更新的文档数量: ${
     updateResult.matchedCount}`);

        // 删除文档
        const deleteResult = await collection.deleteOne({
    name: "Example" });
        console.log(`删除的文档数量: ${
     deleteResult.deletedCount}`);
    } finally {
   
        await client.close();
    }
}

main().catch(console.error);
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
NoSQL 安全 数据库连接
MongoDB 常见使用
MongoDB 常见使用
513 0
MongoDB 常见使用
|
3月前
|
存储 NoSQL 物联网
MongoDB在哪些领域有应用?
MongoDB在哪些领域有应用?
78 3
|
3月前
|
存储 监控 NoSQL
MongoDB介绍
MongoDB介绍
62 1
|
NoSQL MongoDB
mongodb
mongodb
48 0
|
存储 NoSQL 关系型数据库
什么时候选择MongoDB
什么时候选择MongoDB
94 2
|
NoSQL 前端开发 MongoDB
MongoDB应用
初始化路由模板 数据库和前端页面交互 编写注册的后台接口 先连接数据库 和前台进行数据交互 文章的后台接口 先查询所有的文章内容 发文章 一些验证方法 邮箱验证 用户名随机生成
72 0
|
存储 SQL NoSQL
mongoDB(二)
mongoDB
96 0
|
消息中间件 分布式计算 NoSQL
MongoDB适用场景
MongoDB适用场景
|
SQL JSON NoSQL
老去的MongoDB,未来在哪里?
老去的MongoDB,未来在哪里?
247 0
|
存储 SQL 分布式计算
MongoDB的介绍
MongoDB的介绍
91 0
下一篇
DataWorks