gpt4 book ai didi

mongodb - 在原始 MongoDB 协议(protocol)上实现 "count"方法的正确方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 09:55:12 26 4
gpt4 key购买 nike

我已阅读 MongoDB Wire Protocol并实现我自己的驱动程序。

我正在尝试实现“计数”方法,该方法返回集合中满足条件的文档数。但是在上面的手册中,我找不到适合计数方法的操作码。

有可能通过执行 OP_QUERY 获取所有需要的文档并在驱动程序代码中对它们进行计数。但它看起来很低效(文档中不需要的内容将在网络上发送)。

我可以用其他方式有效地实现“计数”方法吗?

最佳答案

我已经创建了代理 MongoDB 协议(protocol)的 mongo-proxy 脚本,并在 MongoDB 服务器和标准的 mongo 客户端程序之间运行它。

作为结果,我确认请求消息发送如下。

命令:

> use test-db
> db.TestCollection.find({'a': 1}).count()
3

消息:

===== client -> server =====
type: OP_QUERY
full_collection_name: test-db.$cmd
query: {'count': 'TestCollection', 'query': {'a': 1.0}, 'fields': {}}

===== server -> client =====
{'n': 3.0, 'ok': 1.0}

我可以从 test-db.$cmd 集合中获取计数值。:-)

关于mongodb - 在原始 MongoDB 协议(protocol)上实现 "count"方法的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com