如何开始使用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,提高您的薪水。