个性化阅读
专注于IT技术分析

如何开始使用MongoDB和NodeJS?

本文概述

不确定如何将MongoDB与NodeJS一起使用?不用担心本指南将为你提供帮助。

NodeJS入门

在上一篇文章中, 我详细介绍了使你开始使用MongoDB的步骤。这些文章详细介绍了安装过程以及我们在MongoDB中使用的术语。

NodeJS是一种流行的基于Javascript的后端技术, 可在Google Chrome的Javascript V8引擎上运行。由于NodeJS减少了请求开销和使用Javascript进行编码的自由度, 它已成为一种非常流行的后端语言。

作为基于JavaScript的框架, 它使前端开发专家可以轻松地开始使用NodeJS后端。

如何开始使用MongoDB和NodeJS?2

本节简要介绍了如何设置NodeJS环境并编写你的第一个NodeJS代码。

NodeJS的安装非常简单。

要安装NodeJS, 请转到NodeJS站点上的下载页面。下载与你的操作系统相对应的设置。在执行安装程序时, 它将带你进行易于理解的指导安装。

确保在安装Node Package Manager(NPM)的同时安装Node。安装完成后, 你可以使用以下命令来验证安装。

$ node -v
v8.11.1

安装完节点后, 让我们创建一个简单的Javascript文件并使用Node执行该文件。

在你选择的目录中创建文件index.js, 并在其中添加以下代码。

console.log('This is my first node application');
let a=5;
let b=10;
console.log('a+b='+(a+b));

保存文件后, 打开终端或命令提示符。导航到文件保存目录, 然后执行以下命令。

$ node index.js

节点引擎执行文件中的代码, 并在终端中输出相关语句。上面命令的输出将如下所示。

This is my first node application
a+b=15

安装适用于MongoDB的NodeJS插件

现在, 你已经安装了数据库并安装了Node后端, 让我们继续创建一个简单的NodeJS项目, 该项目可以将数据插入数据库或从数据库检索数据。

如何开始使用MongoDB和NodeJS?4

在NodeJS中, 可用的插件使几乎每个任务变得简单。与Java中的数据库驱动程序相似, NodeJS中的MongoDB插件可帮助你使用更直接的命令与数据库进行通信。

Node Package Manager(NPM)是一个插件, 用于通过单个命令安装多个NodeJS插件。

首先, 创建练习目录并使用以下命令为节点项目初始化它。

注意:尽管NodeJS有许多可用的IDE, 但我发现Microsoft Visual Code是最用户友好的。随时下载它可以使过程更容易。

$ npm init
.
.
.

Press ^C at any time to quit.
package name: (node_practice)
version: (1.0.0)
description: Node JS to Mongo DB
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /Users/abhishekkothari/Desktop/node_practice/package.json:

{
  "name": "node_practice", "version": "1.0.0", "description": "Node JS to Mongo DB ", "main": "index.js", "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }, "author": "", "license": "ISC"
}


Is this ok? (yes)

因此, 该文件夹已初始化, 现在包含package.json文件。

这个package.json文件包含将安装到目录中的插件的详细信息。

要为NodeJS安装MongoDB插件, 请输入以下命令。

$ npm install --save mongodb

此命令将插件以及必要的依赖项安装在node_modules目录中。标志–save确保将插件添加到package.json中的依赖项列表, 如下所示。

"dependencies": {
    "mongodb": "^3.0.10"
  }

连接并插入第一个文档

一旦安装了必要的插件, 就该插入我们的第一个文档了。 MongoDB中的文档是一条插入到数据库表之一的记录。

首先, 使用以下命令启动MongoDB服务。

$ ./mongod --dbpath=

如果是Windows, 请使用以下命令。

> "C:\Program Files\MongoDB\Server\3.6\bin\mongod.exe"

从我们的第一个nodeJS代码开始, 以连接到数据库。创建一个index.js文件开始。在文件中添加以下代码。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database connected!");
  db.close();
});

这里的newdb是你希望放入数据的数据库的名称。它类似于MySQL中的架构。

但是, MongoDB的区别在于, 如果你尚未创建数据库, 则插件会为你创建数据库。要插入第一个文档, 请更新index.js以反映以下代码。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("Database connected!");
    var dbo = db.db("newdb");
    dbo.collection("students").insertOne({"name":"Abhishek", "marks":100}, function(err, res) {
        if (err) throw err;
        console.log("1 document inserted");
        db.close();
    });
});

为了节省你每次重新执行文件的工作, 你可以选择安装插件nodemon。 Nodemon监视任何文件更改, 并在更改后自动重新运行该文件。

要安装nodemon, 请使用npm命令npm install -g nodemon。

-g选项全局安装nodemon。因此, 它将可以在每个未来的节点项目中使用。

使用简单命令nodemon启动nodemon。

如果一切顺利, 则将第一个文档插入名为” students”的集合中。你可能已经注意到, 你不需要首先创建表。

当你将第一个文档插入表时, 将自动创建该表。

插入多个文件

MongoDB在JSON字符串上起作用。因此, 将多个文档插入MongoDB非常简单。你需要做的就是将JSON数组传递给正确的函数以插入多个文档。

让我们更新代码以插入多个文档。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/newdb";
MongoClient.connect(url, function(err, db) {
if (err) throwerr;
console.log("Database connected!");
vardbo=db.db("newdb");
dbo.collection("students").insertMany([{"name":"John", "marks":90}, {"name":"Tim", "marks":80}], function(err, res) {
if (err) throwerr;
console.log("Documents inserted");
db.close();
});
});

可以注意到, 代码中有两个更改。该函数更改为insertMany, 并且第一个参数现在是JSON数组。因此, 将作为JSON数组传递的文档插入其中。

查看, 过滤和删除记录

查看记录

与用于插入文档的插入功能类似, 视图记录功能也接受基于JSON的过滤器。

要查看students表中的所有记录, 请执行以下代码。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("Database connected!");
    var dbo = db.db("newdb");
    var results = dbo.collection("students").find({});
    results.forEach(row => {
        console.log(row);
    });
});

函数调用find({})接受一个空的JSON, 因此返回数据库中所有可用的文档。上面代码的输出将类似于以下所示。

Database connected!
{ _id: 5b1a1d323c5f4617b1263e49, name: 'Abhishek', marks: 100 }
{ _id: 5b1a20afb57cd517da966113, name: 'John', marks: 90 }
{ _id: 5b1a20afb57cd517da966114, name: 'Tim', marks: 80 }

筛选记录

要过滤记录, 你需要做的就是在上面的find({})函数中将过滤器属性作为JSON传递。该代码将类似于下面显示的代码。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("Database connected!");
    var dbo = db.db("newdb");
    var results = dbo.collection("students").find({marks:90});
    results.forEach(row => {
        console.log(row);
    });
});

在这里, 我们用等于90的标记过滤了记录。上面代码的输出将类似于以下所示。

Database connected!
{ _id: 5b1a20afb57cd517da966113, name: 'John', marks: 90 }

要了解有关过滤器字符串的更多信息, 请访问此链接。

删除记录

最后, 是时候删除记录了。使用NodeJS在MongoDB中进行删除操作类似于查找行。

将使用遵循过滤器字符串条件模式的JSON提供条件。下面显示了删除标记= 90的记录的示例代码。

var mongo = require('mongodb')
var MongoClient = require('mongodb').MongoClient;

var url = "mongodb://localhost:27017/newdb";

MongoClient.connect(url, function(err, db) {
    if (err) throw err;
    console.log("Database connected!");
    var dbo = db.db("newdb");
    dbo.collection("students").remove({marks:90});
    var results = dbo.collection("students").find({marks:90});
    if(!results.count==0){
        console.log('No record found');
    }
    results.forEach(row => {
        console.log(row);
    });
});

上面的代码删除带有标记= 90的记录, 然后检查记录是否存在。

上面的代码给出的输出类似于以下所示:

Database connected!
No record found

我希望这可以为你提供将MongoDB与Node.js应用程序结合使用的想法。你可能也有兴趣通过参加本在线课程来学习更多。

赞(4)
未经允许不得转载:srcmini » 如何开始使用MongoDB和NodeJS?

评论 抢沙发

评论前必须登录!