社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

当其他客户端对MongoDB执行查询时,同一个查询的结果不同

Lee • 6 年前 • 857 次点击  

我发表这篇文章是因为我遇到了一个我无法理解的问题。

问题是,当其他客户机对mongodb执行查询时,同一个查询的结果是不同的。

我没有信心马上解释…具体来说,我们的web服务已经与mongodb shard cluster(4个主节点,4个辅助节点)一起工作了大约1年,我们包含了各种用于统计的后端服务。每个服务都有一些客户端,比如MangGDB Java驱动程序和Python驱动程序。

有一天,我们意识到聚合查询的结果是错误的,因为我们的计划团队指出,实际web服务和聚合中的计数是不同的。首先,我们怀疑python开发的聚合服务是错误的,因为我们没有运行web服务的经验。所以,我们通过了考试,因为我们认为这是不可能的。

然而,15天后,我们又遇到了这个问题。查询很简单,但是Python驱动程序和Java驱动程序对于Web服务的结果是不同的。例如,使用MyGo Java驱动程序3.63的Web服务中的行数是90,但是Python中STATS服务中的行数是15。另外,当我们被机器人蒙戈检查时,已经15岁了。奇怪的是,当我通过直接连接mongos shell执行完全相同的查询时,它是正确的。更奇怪的是,python和robo mongo在shell中执行相同的查询之后,查询变得正确了。 接下来,我们猜测这个问题是因为客户机的缘故。所以,我们跟踪了我们使用的客户端版本。版本如下。

mongodb java driver for web service : 3.6.3
mongodb java driver for presto : 3.6.0
pymongo for stats service : 3.7.2
Robo 3T 1.2.1

然而,我们意识到robo 3t嵌入了真正的mongodb外壳。我们的假设是错误的。最后,我在写这篇文章。(

我认为很难找到这个问题的原因,但是我希望一些优秀的mongodb用户会给出一些小建议来分析这个原因。

谢谢您。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40885