当前位置:网站首页>关于rust的mongodb驱动count方法无法与near条件一同使用的问题
关于rust的mongodb驱动count方法无法与near条件一同使用的问题
2022-08-10 04:03:00 【wangjun861205】
最近在自己的项目中使用 mongodb,遇到了一个比较诡异的问题, 就是如果通过 rust mongodb driver 来对 mongodb 进行操作, 在用 db.collection.count()方法的时候, 如果查询条件里面包含 n e a r ,则会报 ‘ near, 则会报` near,则会报‘geoNear, $near, and $nearSphere are not allowed in this context`, 一句话没头没尾, 我也搞不清这里面提到的上下文具体指什么, 网上搜了一下, 相关的信息比较少, 大部分也没有正面的回答是哪里的问题,有解决方案的更少。没办法,只能自己试了,通过 mongo shell 执行该查询是可以成功拿到返回值的, 所以基本可以确定是 rust 的 mongodb driver 的问题, 目前版本是 2.3.0, 已经是最新的了, 解决的方法只能是曲线救国了, 将 db.collection.count()改成 db.collection.find(), 因为 db.collection.find()返回的是一个 Stream, futures 这个 crate 提供了对 Stream 的扩展(StreamExt), 里面包括一个 count()方法, 我们可以直接调用得到计数。
但是注意, 因为 Stream 本质上是一个 Iterator, 所以我们这个计数真的是遍历整个结果集得出的, 不管是从时间来讲还是从资源开销来讲, 成本都非常高, 因为我的应用场景一般计数不会超过 7 个, 所以我勉强可以接受, 如果计数较大的场景, 请另寻出路
边栏推荐
猜你喜欢
随机推荐
C语言原码,反码,补码与大小端
基于Nonebot2的qq机器人如何测试超管账号
ZZULIOJ:1014: 求三角形的面积
TCP协议之《TSQ控制》
LeetCode 周赛笔记 —— 2022年8月 第一周
requests库
Unity实现UI的边缘检测和拖拽拉伸功能
矛盾的地方
Day14/15/16:哈夫曼树、哈弗曼编码(压缩与解压缩)
JVM内存模型
域名DNS解析工具ping/nslookup/dig/host
TCP协议之《延迟ACCEPT》
GP如何进行数据比对?
数据切片问题
C#【委托/事件篇】跨线程访问窗体控件的方法
ZZULIOJ:1024: 计算字母序号
2022年电工(初级)国家题库及模拟考试
请问mindspore支持l1范数归一化吗
【网络迁移】Pytorch中的torch.no_grad对应MindSpore哪个方法
ZZULIOJ:1026: 字符类型判断









