你好 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/