Node.js 如何连接 MongoDB?
使用 Mongoose ODM 工具
npm install mongoose
建立连接
// db.js
const mongoose = require("mongoose");
mongoose.connect("mongodb://127.0.0.1:27017/mydb")
.then(() => console.log("MongoDB 连接成功"))
.catch((err) => console.error("MongoDB 连接失败", err));
说明:
127.0.0.1:27017是 MongoDB 默认端口mydb是数据库名,不存在会自动创建
定义数据模型(Model)
// model/UserModel.js
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
username: String,
password: String,
age: Number
});
const UserModel = mongoose.model("user", UserSchema); // 对应集合 users
module.exports = UserModel;
Node.js 操作 MongoDB(CRUD)
所有操作需在
await connect()后使用,或包裹在async函数中。
1️ 添加数据(Create)
await UserModel.create({
username: "Tom",
password: "123456",
age: 20
});
查询数据(find)
查询全部
const users = await UserModel.find();
条件查询
const users = await UserModel.find({ age: { $gte: 18 } });
查询一条
const user = await UserModel.findOne({ username: "Tom" });
更新数据(Update)
await UserModel.updateOne(
{ username: "Tom" },
{ $set: { age: 25 } }
);
删除数据(Delete)
await UserModel.deleteOne({ username: "Tom" });
index.js 示例:
const connect = require('./db');
const UserModel = require('./model/UserModel');
async function main() {
await connect();
// 添加
await UserModel.create({ username: "Alice", password: "123", age: 22 });
// 查询
const users = await UserModel.find();
console.log(users);
// 更新
await UserModel.updateOne({ username: "Alice" }, { age: 23 });
// 删除
await UserModel.deleteOne({ username: "Alice" });
process.exit();
}
main();
总结
项目 内容
数据库 MongoDB(非关系型,文档型)
Node连接方式 mongoose.connect()
操作方式 create、find、updateOne、deleteOne
工具推荐 MongoDB Compass、Robo 3T、NoSQLBooster 等
数据结构 文档(Document)、集合(Collection)
常见端口 默认 27017