javascript - Mongoose createConnection 和 Document.prototype.save()
问题描述
我正在同一个 mongo 主机上构建一个只有几个连接(最多 3 或 4 个)的多租户应用程序。我真正做的是在服务器启动时建立猫鼬连接并将其存储在上下文对象中。
// For each tenants
tenantConnection(name, uri) => new Promise((resolve, reject) => {
const connection = mongoose.createConnection(uri, {
useCreateIndex: true,
useNewUrlParser: true,
useFindAndModify: false,
retryWrites: false,
useUnifiedTopology: true
})
connection.on('connected', async () => {
const MessageModel = connection.model('Message', Message) // <- Message is a classic mongoose Schema
...
return resolve({ connection, models: { Message: MessageModel } })
})
})
一切正常,除了当我尝试使用原型时.save()
(与 相同Model.create({...})
。当我尝试创建新记录时,函数卡住,没有触发回调,也没有任何错误。
const { models: { Message } } = tenant
const messageRecord = new Message({ content }
await messageRecord.save() // -> Stuck here, nothing happens
目前,我发现的唯一方法是使用UpdateOne({}, {...}, {upsert: true})
创建记录,但我更愿意使用原生 mongoose 原型.save()
从我的模式中触发设置器。
有谁知道我做错了什么?
解决方案
推荐阅读
- java - 尝试获取连接字符串java时发生文件未找到错误
- python - ValueError:您在优化器 RMSprop 上调用了“set_weights(weights)”,权重列表长度为 3,但优化器期望权重为 0
- python - 我可以在 C 盘中创建我的 Django 项目吗?
- java - Spring Boot @Mapper Bean 创建问题:应用程序无法启动。错误:考虑定义一个 bean 类型
- python - Python:我如何连续添加一个每个 for 循环周期增加 10 的数字?
- java - ArrayAdapter() 中的上下文
- javascript - 将自定义 getter 添加到接收到的 json
- python - 如何将 DataFrame 保存为列表而不是字符串
- r - 在 r 中按组从每个索引中的一行迭代组合
- python - 如何使用 unicodedata 打印 unicode 字符的值?