📜  Node.js 和 MongoDB 简介

📅  最后修改于: 2022-05-13 01:56:26.193000             🧑  作者: Mango

Node.js 和 MongoDB 简介

NoSQL 数据库是存储和检索以非表格格式存在的数据的数据库。根据存储数据的格式,NoSQL 数据库分为 4 种主要类型:

  • 核心价值
  • 图数据库
  • 面向文档
  • 列族

这些数据库旨在解决传统 RDBMS 的缺点,并提供高性能、可用性和增加的可扩展性(水平),同时还处理随时间不断更改其模式的数据。当今可用的最流行的 NoSQL 数据库之一是 MongoDB。
MongoDB是一个可扩展的、高性能的、开源的、面向文档的 NoSQL 数据库,由 10gen 于 2007 年开发。它是用 C++ 编写的,它支持多种编程语言的各种 API。

MongoDB的主要特点:

  • 高性能的全索引支持
  • 水平可扩展和容错(分布式数据存储/分片)
  • 丰富的基于文档的查询,易于阅读
  • 复制和故障转移以实现高可用性
  • 用于聚合的 Map/Reduce
  • 支持主从复制
  • 没有连接也没有交易
  • 没有僵化的模式,这使它成为动态的
  • 以 JSON / BSON 表示的数据

什么时候使用 MongoDB?

MongoDB可用于需要简单查询、轻松快速集成数据以及数据结构随时间不断变化的地方。例子:

  • 电子商务网站
  • 移动应用
  • 博客和内容管理门户
  • 存储地理空间数据

同时,由于它不支持事务,因此不能用于高度事务性的系统中。

SQL 与 MongoDB

MySQL 和 MongoDB 中使用的组件具有不同的术语,但功能相似。

SQLMongoDB
DatabaseDatabase
TableCollection
RowDocument
ColumnField
IndexIndex

安装 MongoDB(在 Windows 上):

转到以下链接 (https://www.mongodb.com/download-center/community) 并下载 MongoDB 社区服务器。
从这里下载 MSI 文件,然后在您的计算机中安装 MongoDB。安装完成后,打开 MongoDB Compass Community 应用程序,然后选择连接选项。
MongoDB 的本地实例现在将在本地主机上运行,端口号为 27017。

NodeJS 和 MongoDB:

Node.js 是开源 JavaScript 服务器环境,能够连接到 SQL 和 NoSQL 数据库,例如 MySQL 和 MongoDB(分别)。为了使用这些数据库,需要使用 Node Package Manager (npm) 下载和安装所需的模块。

要使用 MongoDB,需要安装Mongoose模块。

  • 安装猫鼬:

    打开命令提示符或终端并输入以下命令以安装Mongoose模块

    npm install mongoose

  • 使用 Node.js 连接到 MongoDB

    以下 Node.js 脚本用于连接到 MongoDB 的本地实例。

    var client = require('mongodb').MongoClient;
    var url = 'mongodb://localhost:27017/admin';
    client.connect(url,{ useNewUrlParser: true }, function(err,db)
    {
         console.log("Connected");
         db.close();
    });
    

    解释:

    1. 要连接数据库/创建数据库,需要创建一个 MongoClient 对象。
    2. MongoDB 的 URL,后面应该指定数据库名称
    3. 使用 MongoClient 对象的 connect函数,在服务器和 MongoDB 之间建立连接。

    注意:这里使用的是 admin 数据库。

    运行 Node.js 文件:
    打开命令提示符并导航到包含 js 文件的文件夹,然后键入以下命令。

    node filename.js

    注意:如果 URL 中提到的数据库在添加新文档时在 MongoDB 中不存在,则创建数据库。

  • 从 MongoDB 查询数据:

    以下代码片段用于从 MongoDB 数据库中查询数据。

    var client = require('mongodb').MongoClient;
    var url = 'mongodb://localhost:27017/';
    client.connect(url,{ useNewUrlParser: true }, function(err,db)
    {    
            var dbo=db.db("admin")
        var cursor = dbo.collection('geeks4geeks').find();    
        cursor.each(function (err,doc)
        {
            if(doc!=null)
            console.log(doc);
        });
        db.close();
    });
    

    解释:

    • 使用 URL,与 MongoDB 服务器建立连接。
    • 使用 DB函数,创建到admin数据库的连接。
    • geeks4geeks集合中存在的所有文档都被检索并显示在控制台中。

    注意:这里使用的是 admin 数据库,其中包含geeks4geeks集合,其中包含一些文档。

    运行 Node.js 文件:
    打开命令提示符并导航到包含 js 文件的文件夹,然后键入以下命令。

    node filename.js

    这些是 admin 数据库的 geeks4geeks 集合中存在的文档。