node.js - find().session(session) 的 Mongoose 事务给出 IllegalOperation 错误
问题描述
我无法找到解决此问题的方法。
我想获得所有具有“管理员”权限的用户并想向他们发送通知。到目前为止,我使用 Mongoose 事务尝试过的内容如下:
const session = await mongoose.startSession();
session.startTransaction();
const systemRole = await SystemRole.find(
{
isActive: true,
roleName: "Admin",
},
).session(session);
const adminUsers = await User.find(
{
isActive: true,
systemRoles: { $contains: systemRole },
},
).session(session);
systemRole
用户模式中有一个数组,其类型为ObjectId
.
我不知道我在这里错过了什么,但这不断向我发送以下错误:
errors: code: 20 codeName: "IllegalOperation"
我已经关注了这篇文章。
在没有会话的情况下查找systemRoles
工作正常,但我希望它在事务中,以便如果失败,它应该被中止。
解决方案
推荐阅读
- reactjs - Reactjs 函数式到类组件的转换
- javascript - 使用 Javascript 在 textarea 中显示表格代码
- python - Python - 用列中的先前记录值填充NULL
- javascript - ENOENT:在 react-native 项目中安装 react-navigation 时没有这样的文件或目录
- c# - 方法名称预期委托
- c# - 使用 UnityWebRequest 从 API 端点接收 JSON 数据不起作用
- javascript - 仅使用 BootStrap 内联内容,
- c - C中函数“延迟”的隐式声明
- git - Colab 上的 Git 使用问题
- r - 正则表达式出现时的 pivot_wider()