本文详细讲解如何在Windows环境下下载、安装并初始化MongoDB数据库服务,通过命令行指定数据路径。随后演示如何使用Node.js的mongodb驱动连接数据库,并将增删改查功能封装为独立的JS模块。通过myFun.js与index.js的配合,实现数据库操作的复用与规范化管理,适合初学者快速上手MongoDB与Node.js的集成开发。
MongoDB本地环境初始化
访问MongoDB官网https://www.mongodb.com/即可获取最新版本的下载链接。
若官网访问不便,也可通过第三方软件站如https://www.jb51.net/softs/590664.html进行本地下载。
安装过程相对简单,通常只需连续点击“Next”即可完成。建议采用默认路径将软件安装至C盘,并在硬盘其他位置新建一个文件夹作为数据库的数据存储目录。
例如,可以将该数据存储文件夹命名为“mongodbWorkspace”。
记下该文件夹的完整路径,按下Windows快捷键Win+R打开运行窗口,输入cmd进入命令行工具。在命令行中输入命令“mongod --dbpath 你的路径”(将“你的路径”替换为实际文件夹路径)来启动数据库服务。

执行上述命令后,数据库服务即已初始化并运行。此时不要关闭该命令行窗口,保持其开启状态即代表数据库服务处于活跃状态。随后,建议新建一个独立的命令行窗口用于后续操作。
在新建的命令行窗口中输入“mongo”命令,若出现相应的交互界面,则表明客户端已成功连接至数据库服务,此时即可在该环境中执行MongoDB相关操作指令。
在交互界面中输入“use yourDatabaseName”(将“yourDatabaseName”替换为目标数据库名)。如果该数据库已存在,则切换至该数据库;如果不存在,系统会自动创建一个新的同名数据库。

Node.js驱动安装与连接
接下来配置Node.js环境,打开VScode并新建终端,执行“npm install mongodb”命令安装官方驱动。安装完成后,在入口文件index.js中通过require语句导入该模块(具体代码见后文)。
数据库操作方法封装
为了规范代码结构,建议先创建一个专门用于封装数据库方法的JS文件,例如命名为“myFun.js”,其核心内容如下。
myFun.js文件的具体实现代码。
//传入db环境, 集合名字,需要插入的数据,callback
var insertData = function (db, myCollection, data, callback) {
//获得指定的集合
var collection = db.collection(myCollection);
//插入数据
collection.insert(data, function (err, result) {
//如果存在错误
if (err) {
console.log('Error:' + err);
return;
}
//调用传入的回调方法,将操作结果返回
callback(result);
});
}
//传入db环境, 集合名字,要修改的数据的条件,要修改的结果,callback
var updateData = function (db, myCollection, where, set, callback) {
//获得指定的集合
var collection = db.collection(myCollection);
//修改数据
collection.updateMany(where, set, function (err, result) {
//如果存在错误
if (err) {
console.log('Error:' + err);
return;
}
//调用传入的回调方法,将操作结果返回
callback(result);
});
}
//传入db环境, 集合名字,要查询的数据的条件,要显示的字段,callback
var findData = function (db, myCollection, where, set, callback) {
//获得指定的集合
var collection = db.collection(myCollection);
//查询数据
collection.find(where, set).toArray(function (err, result) {
//如果存在错误
if (err) {
console.log('Error:' + err);
return;
}
//调用传入的回调方法,将操作结果返回
callback(result);
});
}
//传入db环境, 集合名字,要删除数据的条件,callback
var deleteData = function (db, myCollection, where, callback) {
//获得指定的集合
var collection = db.collection(myCollection);
collection.remove(where, function (err, result) {
//如果存在错误
if (err) {
console.log('Error:' + err);
return;
}
//调用传入的回调方法,将操作结果返回
callback(result);
});
}
//暴露方法
module.exports.insertData = insertData;
module.exports.updateData = updateData;
module.exports.findData = findData;
module.exports.deleteData = deleteData;
文件末尾通过“module.exports”暴露内部定义的各个方法。在index.js中通过require引入该文件后,即可直接调用其中封装的数据处理函数。
上述方法定义仅为示例,实际开发中建议根据具体业务需求自定义方法逻辑。例如,集合名称参数可以设计为支持传入字符串或集合实例,以提高代码的灵活性和复用性。以下是主程序index.js的实现。
主程序调用与验证
index.js文件的具体实现代码。
var MongoClient = require('mongodb').MongoClient;
var myFun = require('./myFun');
//定义连接数据库的地址
const url = 'mongodb://localhost:27017/';
var dbName = 'kejikeji'
//连接数据库
MongoClient.connect(url, (err, client) => {
if (err) {
console.log('数据连接失败');
return false;
}
console.log('数据库连接成功');
let db = client.db(dbName); /*获取db对象*/
let collection = "user";
var data = [{ "name": "mongodb3.0", "age": 114 }, { "name": "mongodb3.0", "age": 17 }];
myFun.insertData(db, collection, data, (result) => {
console.log(result.ops);
});
//要修改数据的条件,>=10岁的用户
var updateWhere = { age: { "$gte": 10 } };
//要修改的结果
var updateSet = { $set: { age: 95 } };
myFun.updateData(db, collection, updateWhere, updateSet, (result) => {
console.log(result.result);
});
//要查询数据的条件,>=10岁的用户
var findWhere = { age: { "$gte": 10 } };
//要显示的字段
var findSet = { age: 1 };
myFun.findData(db, collection, findWhere, findSet, (result) => {
console.log(result[1].age);
});
//要删除数据的条件,name=mongodb3.0的用户删除
var deleteWhere = { name: "mongodb3.0" };
myFun.deleteData(db, collection, deleteWhere, (result) => {
console.log(result);
});
})

运行截图显示操作执行成功。在第二个命令行窗口中,可通过“use”命令进入对应数据库,并执行“db.yourCollectionName.find()”来查询该集合下的所有文档数据。

通过对比查询结果,可以验证封装的代码逻辑是否正确生效。
以上内容涵盖了从环境搭建到代码封装的完整流程,希望对学习MongoDB与Node.js集成的读者有所帮助,欢迎继续支持本站获取更多技术分享。