Mongoose Schema 如何映射到 MongoDB 中的集合?
How does a Mongoose Schema map to a collection in MongoDB?
对于这个非常基本的问题深表歉意,但我有点困惑。我在我的 Express + Node 服务器中使用 Mongoose 到 post 到 Mongo,我刚刚意识到这两个 Models/Schemas 与集合的名称不完全相同在 MongoDB 他们 posting 到。一切正常,API 端点 post 到正确的集合,但我不知道如何或为什么。 Mongoose model/schema 和 MongoDB 集合之间的 link 是什么?
显然我的 MONGODB_URI 环境变量指向我的数据库,但是没有其他对集合的引用,特别是 API 端点应该 post 到哪个集合,禁止模型,这是与集合不同的名称。
例如,下面我的 Post 模型确实将数据(通过 api)发送到 posts 集合,但我不知道它是如何知道这是正确的集合的,这让我很烦。
const PostSchema = new Schema({
...
});
const Post = mongoose.model('Post', PostSchema);
module.exports = Post;
作为测试,我将上面的变量完全重命名为完全不相关的东西
const TrevorSchema = new Schema({
...
});
const Trevor = mongoose.model('Trevor', TrevorSchema);
module.exports = Trevor;
并且创建了一个带有模型复数名称的新集合,'Trevors' 已创建,那么 Mongoose 是否会寻找要映射到的模型的复数名称?
干杯,马特
从 Mongoose 文档本身的一些 link 中引用
Mongoose 中的一切都从模式开始。每个模式映射到一个 MongoDB 集合并定义该集合中文档的形状。 Link to docs
第一个参数是您的模型所针对的集合的单数名称。 Mongoose 会自动查找模型名称的复数小写形式。因此,对于上面的示例,模型 Tank 用于数据库中的 tanks 集合。 Link to docs
从文档中可以清楚地看出,他们会自动处理单数模型名称到复数的转换。
我们可以看看他们的代码库,当您调用 mongoose.model
时,在内部 this function gets called, which in return pluralize 您的模型名称并在 Mongodb 中创建一个集合。
貌似5.0 Mongoose入手了,也给我们提供了一个方法disable pluralization
对于这个非常基本的问题深表歉意,但我有点困惑。我在我的 Express + Node 服务器中使用 Mongoose 到 post 到 Mongo,我刚刚意识到这两个 Models/Schemas 与集合的名称不完全相同在 MongoDB 他们 posting 到。一切正常,API 端点 post 到正确的集合,但我不知道如何或为什么。 Mongoose model/schema 和 MongoDB 集合之间的 link 是什么?
显然我的 MONGODB_URI 环境变量指向我的数据库,但是没有其他对集合的引用,特别是 API 端点应该 post 到哪个集合,禁止模型,这是与集合不同的名称。
例如,下面我的 Post 模型确实将数据(通过 api)发送到 posts 集合,但我不知道它是如何知道这是正确的集合的,这让我很烦。
const PostSchema = new Schema({
...
});
const Post = mongoose.model('Post', PostSchema);
module.exports = Post;
作为测试,我将上面的变量完全重命名为完全不相关的东西
const TrevorSchema = new Schema({
...
});
const Trevor = mongoose.model('Trevor', TrevorSchema);
module.exports = Trevor;
并且创建了一个带有模型复数名称的新集合,'Trevors' 已创建,那么 Mongoose 是否会寻找要映射到的模型的复数名称? 干杯,马特
从 Mongoose 文档本身的一些 link 中引用
Mongoose 中的一切都从模式开始。每个模式映射到一个 MongoDB 集合并定义该集合中文档的形状。 Link to docs
第一个参数是您的模型所针对的集合的单数名称。 Mongoose 会自动查找模型名称的复数小写形式。因此,对于上面的示例,模型 Tank 用于数据库中的 tanks 集合。 Link to docs
从文档中可以清楚地看出,他们会自动处理单数模型名称到复数的转换。
我们可以看看他们的代码库,当您调用 mongoose.model
时,在内部 this function gets called, which in return pluralize 您的模型名称并在 Mongodb 中创建一个集合。
貌似5.0 Mongoose入手了,也给我们提供了一个方法disable pluralization