Lia*_*ren 2 mongoose mongodb node.js
我在理解 Mongoose 的概念时遇到了困难。
我正在使用 MongoDB atlas,有一个集群、一个数据库和 2 个集合。
用户、角色。
通过指南,我了解到编写内容的一个好方法是将模型(我使用命名模式)作为文件,将其导入到数据库模块/类中
并用它来执行查询...
const mongoose = require("mongoose");
const process = require("./config.env");
db = () => {
return mongoose
.connect(process.env.URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: true,
})
.then((response) => {
console.log(`Connected to Databse : ${response.connection.host}`);
})
.catch((err) => {
console.log("DB_ERROR:", err);
process.exit(1);
});
};
module.exports = db;
Run Code Online (Sandbox Code Playgroud)
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema({
username: {
type: String,
required: true,
},
password: {
type: String,
required: true,
},
email: {
type: String,
required: true,
},
});
const User = mongoose.model("User", UserSchema);
module.exports = User;
Run Code Online (Sandbox Code Playgroud)
const User = require("../schemas/User");
const db = require("../config/db");
class Database {
constructor(db, collection) {
this.db = db;
this.collection = collection;
this.User = User;
}
connect() {
return db();
}
}
module.exports = Database;
Run Code Online (Sandbox Code Playgroud)
一个文件用于处理数据库连接。另一个文件作为用户模式,第三个文件用于处理我可能在全局使用的每个函数...
我无法全神贯注的一件事是
findOne() 函数如何能够找到我正在使用的集合,而无需我告诉它我希望它在哪个集合中搜索?
是不是以某种方式翻译了
const User = mongoose.model("User", UserSchema);
Run Code Online (Sandbox Code Playgroud)
线并搜索“用户”?我只是无法理解这背后的魔力......
如果我想在角色集合中专门搜索怎么办...?
Mongoose 使用创建时传递的模型名称:mongoose.model("User", UserSchema),转换为小写并附加 's'。
对于模型,它默认User使用集合。users您可以通过在架构中显式指定集合名称来更改此设置。
| 归档时间: |
|
| 查看次数: |
1367 次 |
| 最近记录: |