如何开始使用MongoDB和NodeJS?

不确定如何在NodeJS中使用MongoDB?不用担心,本指南将帮助你。

NodeJS入门

the previous article中,我详细介绍了使用MongoDB的步骤。这些文章详细介绍了MongoDB的安装过程以及我们在MongoDB中使用的术语。

NodeJS是一种基于Javascript的流行后端技术,它运行在Google Chrome的Javascript V8引擎上。由于在Javascript中编写代码的自由以及请求开销的减少,NodeJS已经成为一种非常流行的后端语言。

作为一种JavaScript-based framework,它使前端开发专家可以轻松开始使用NodeJS后端。

本节简要介绍了设置NodeJS环境和编写第一个NodeJS代码的过程。

安装NodeJS非常简单。

要安装NodeJS,请访问NodeJS网站上的downloads页面。下载与您的操作系统相对应的安装程序。在执行安装程序时,它会引导您完成一个易于理解的安装过程。

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

$ node -v
v8.11.1

一旦安装了Node,让我们创建一个简单的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

Node引擎执行文件中的代码,并在终端中输出相关语句。以上命令的输出结果如下所示。

This is my first node application
a+b=15

安装MongoDB的NodeJS插件

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

在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的install the MongoDB插件,请输入以下命令。

$ npm install --save mongodb

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

“dependencies”: {
“mongodb”: “^3.0.10”
}

连接并插入第一个文档

安装必要的插件后,现在是时候插入我们的第一个文档了。在MongoDB中,文档是插入到数据库中的一个表中的单个记录。

要开始,请使用以下命令启动MongoDB服务。

$ ./mongod --dbpath=

在Windows的情况下,请使用以下命令。

> "C:Program FilesMongoDBServer3.6binmongod.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("数据库已连接!");
  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("数据库已连接!");
    var dbo = db.db("newdb");
    dbo.collection("students").insertOne({"name":"Abhishek","marks":100}, function(err, res) {
        if (err) throw err;
        console.log("已插入1个文档");
        db.close();
    });
});

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

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

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

使用简单的命令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("数据库已连接!");
vardbo=db.db("newdb");
dbo.collection("students").insertMany([{"name":"John","marks":90},{"name":"Tim","marks":80}], function(err, res) {
if (err) throwerr;
console.log("文档已插入");
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("数据库已连接!");
    var dbo = db.db("newdb");
    var results = dbo.collection("students").find({});
    results.forEach(row => {
        console.log(row);
    });
});

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

数据库已连接!
{ _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("数据库已连接!");
    var dbo = db.db("newdb");
    var results = dbo.collection("students").find({marks:90});
    results.forEach(row => {
        console.log(row);
    });
});

在这里,我们筛选了分数等于90的记录。上述代码的输出类似于下面的示例。

数据库已连接!
{ _id: 5b1a20afb57cd517da966113, name: 'John', marks: 90 }

要了解更多关于筛选字符串的信息,您可以访问this link

删除记录

最后,是时候删除记录了。在Node.js中使用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("数据库已连接!");
    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('未找到记录');
    }
    results.forEach(row => {
        console.log(row);
    });
});

上述代码删除了分数等于90的记录,然后检查记录是否存在。

上述代码的输出类似于下面的示例:

数据库已连接!
未找到记录

希望这让您对使用MongoDB与Node.js应用程序有所了解。

接下来是什么?

成为一个professional programmer,提高您的薪水。

类似文章