javascript - Mongoose ODM 在 MongoDB 集合中保存错误的模型名称

标签 javascript node.js mongoose odm

你好 Stackoverflowers!

我在 Mongoose 创建名为“Safes”的集合时遇到了一个奇怪的问题。

这是我的示例代码:

const mongoose = require('mongoose')
mongoose.connect('mongodb://mongodb:27017/test', { useNewUrlParser: true })

const Safe = mongoose.model('Safe', { name: String })

const safe = new Safe({ name: 'foobar' })
safe.save().then(() => console.log('done'))

当我打开数据库 shell 并发出此命令时:

mongo test --eval "db.getCollectionNames()"

其响应为:

MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/test?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f9cfa8b9-58e2-40b8-9907-ecd18039935a") }
MongoDB server version: 4.0.6
[ "saves" ]

现在,我尝试创建一个集合名称为“Safes”的模型,而 mongoose 似乎将其从 safes > saves 更改为...

Mongoose 有某种无法使用的 protected 模型吗?

最佳答案

似乎他们对以“fe”结尾的单词制定了规则,因为它们通常转换为复数形式“ves”(刀 -> 刀)。

您可以通过向架构添加另一个参数来设置自己的集合名称:

const safeSchema = new Schema({ name: String }, { collection: 'safes' })

关于javascript - Mongoose ODM 在 MongoDB 集合中保存错误的模型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55462708/

相关文章:

javascript - angular.ui DatePicker 如何设置日期格式?

node.js - 蓝牙 GATT 数据在飞行中损坏

javascript - 获取node.js上文本字段的值

node.js - 使用nodejs中的另一个模型数据填充表单中的下拉列表

node.js - 如何在保存后进行 Mongoose 查询?

javascript - Mongoose-使用 findOneAndUpdate 更新插入时出错

javascript - chrome 扩展 - 使用内容脚本减少加载时间的最佳方法

javascript - Chrome 中的 "Cannot create answer in state stable"

php - ajax行可编辑数据表

javascript - readme-md-generator 未从包 JSON 更新版本