mongodb - mongoose - 如何从连接对象启动事务会话?总是抛出“没有交易开始”
问题描述
我有一个使用 mongoose 与 mongo db 交互的 Nestjs 项目。
我遇到的问题是我似乎无法从连接对象本身成功启动会话。每当我尝试使用生成的会话时,它都会抛出:
MongoError: No transaction started
100% 的时间
public async get_session(): Promise<ClientSession> {
const session = await this.connection.startSession();
return session;
}
并且间歇性地,它会抛出:
MongoError: Given transaction number 2 does not match any in-progress transactions. The active transaction number is 1
以下实现的变体:
public get_session(): ClientSession {
return this.connection.getClient().startSession();
}
查看文档-两者都应该有效,但实际上并非如此。
使用的版本:
"mongoose": "^5.11.18",
"@nestjs/mongoose": "^7.2.3",
"@nestjs/core": "^7.6.15",
"typescript": "4.0.6",
解决方案
推荐阅读
- javascript - 导航时按钮不显示
- c# - 使用 c# 脚本从 HTML 文件中提取数据
- java - Null 值的 Java 标准构建器
- excel - 出于某种原因,MATCH 函数不适用于表头
- flutter - 动态切换滚动物理形式从不滚动滚动
- c++ - 如何在 UML 中以“void*”作为输入来描述成员函数?
- hyperledger-fabric - 有没有办法在超级账本结构 2.0 中将数据从一个链码发送到另一个链码?
- asp.net-core - 在单独的类库而不是 API 项目中配置 Serilog
- reactjs - JSX 是使用 React 的必要条件吗
- angular - Angular 9 问题:无法运行初始应用程序