今天和朋友一起讨论了一下有关芒果DB的知识,感觉自己要慢慢转向后端了呢(笑)。
MongoDB是一种非关系型数据库,了解MongoDB主要是为了和我已经了解的Cloudant数据库(NoSQL)、DB2(SQL)作对比,同时进一步熟悉增删改查。
有关MongoDB数据库的安装就暂时略过了,需要提及的是,在MongoDB的基本安装完成之后,它是没有GUI界面的,于是我安装了一个叫MongoDBCompass的GUI工具(也可以完全不安装,按个人需求来)
MongoDBCompass长这样:
接下来就开始用nodejs连接MongoDB数据库啦
首先我们要确认我们的MongoDB本地是连着服务器端的:windows系统进入terminal(cmd),然后输入命令:---mongod
当我们启动mongod时,实际上是在启动一个新的数据库,但是我们不直接与mongod进程交互。我们使用数据库客户端【mongoshell】与mongod通信,我们向客户端发出命令,客户端负责与mongod通信以执行这些命令
如果没有报错,说明我们mongodb的远程服务器是连接上的。那么请不要关闭控制台,使之保持连接状态。
下面我们可以创建一个新文件夹,可以用命令 mkdir node_quickstart
然后 cd node_quickstart进入node_quickstart
然后在nodejs下安装mongodb的包(有好多种供我们选择的包,具体可以去npm官网搜索关键字mongodb),例如以下两种中的任意一种;
我选择的是第一个,因此我输入命令:npm install mongodb
安装好之后,输入命令:code .
会进入Vscode编辑器(如果你安装了的话),然后我们在已有的文件中并列安装一个index.js的文件
我们可以将nodejs连接mongodb(以及增删改查基本操作)的代码写在这里:
由于我之前在MongoDBCompass上面先建了名为名为test的Database和名为user的Collection,所以代码中我用ping命令测试了是否能够接收到MongoDB远程客户端名为test的Database;
const { MongoClient, ServerApiVersion } = require('mongodb');//引入mongodb包
const uri = "mongodb://127.0.0.1:27017";
// Create a MongoClient with a MongoClientOptions object to set the Stable API version
const client = new MongoClient(uri, {
serverApi: {
version: ServerApiVersion.v1,
strict: true,
deprecationErrors: true,
}
});
async function run() {
try {
// Connect the client to the server (optional starting in v4.7)
await client.connect();
// Send a ping to confirm a successful connection
await client.db("test").command({ ping: 1 });
console.log("Pinged your deployment. You successfully connected to MongoDB!");
} finally {
// Ensures that the client will close when you finish/error
await client.close();
}
}
run().catch(console.dir);
在Vscode terminal中输入node index.js 命令
可以打印出:
说明连接成功了。
以上就是我对Node.js连接MongoDB数据库的基本认识,还有些不足之处,希望大家多多指教!
谢谢!
目前还有一个不懂的地方,就是我配置完MongoDB的环境变量之后,在terminal输入“mongo”命令,系统还是不能识别;然而我将ip地址:127.0.0.1:27017输入任意一个网址之后,它显示的却是已连接上,所以这是为什么呢?(未完待续...)