mongoDb的读session和写session权限报错问题

go在使用mongoDb时用到了全局会话,发现在创建的session的逻辑相同,首先会进行数据的查询,此时获取了全局session执行读操作,查询所有文档,则当前会话为读会话,当再去插入时发现会报错,此时session读会话不能执行写权限,起初不知什么原因就去测试,发现全局session创建后第一次使用的操作会影响它的操作权限,查询会话与写会话不一样,如果建立后使用的是写就为写权限如果执行查就查权限,去查的执行写报错,写的执行查的会话可以完成。

通过golang的异常捕获和尝试就发现了这个问题,操作输出如下:复用会话,但是跨了行为定义的权限会报错,就需要重新初始话全局session,这中读写权限的区分保正多用户的安权。

复制代码
开始读
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!
CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
LastOf执行
LastOf执行

CreateSession success!!
fileSource
6
数据执行成功!
查到的结果大小 6
LastOf执行
LastOf执行
LastOf执行
LastOf执行
LastOf执行
LastOf执行
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!

mydb fileSource
------
=====
苹果插入成功
CreateSession success!!
fileSource
8
数据执行成功!
查到的结果大小 8
LastOf执行
LastOf执行
再写
mydb fileSource
------
err错误信息: Session already closed
再重新建立连接
CreateSession success!!
mydb fileSource
------
=====
苹果插入成功
捕获异常并补偿成功!
相关推荐
用户27784491049933 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
JavaEdge在掘金5 小时前
ssl.SSLCertVerificationError报错解决方案
python
数据智能老司机5 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
我不会编程5556 小时前
Python Cookbook-5.1 对字典排序
开发语言·数据结构·python
松果猿6 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
老歌老听老掉牙6 小时前
平面旋转与交线投影夹角计算
python·线性代数·平面·sympy
满怀10156 小时前
Python入门(7):模块
python
无名之逆6 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601016 小时前
rust 同时处理多个异步任务
java·数据库·rust