当前位置: 首页 > 知识库问答 >
问题:

优化MongoDB调用

长孙景焕
2023-03-14

我有一个mongoDB集合,我正在使用java驱动程序从mongo集合中获取数据。

我有一个电话号码列表,我需要在mongoDB集合中搜索所有这些手机号码。

假设我有500个手机号码,目前从我的java代码来看,我会说:

List<String> mobilenumbers = getMobileNumbers();   //lets assume this list length is 500
for(int i=0;i<= mobilenumbers.size(); i++){

    mongoDB.find(mobilenumbers.get(i);
}

现在的问题是我打了500次DB。。

我想知道是否有更好的方法来处理,例如在RDBMS中,我们如下所示

select * from mobiles where mobile_number in ( 'xxx','yyy','zzz'.......)

所以像上面的查询一样,单次调用就足够了,但是在in子句中传递给SQL的参数数量是有限制的。。

现在,对于MongoDB,我们对Filter有这样的限制吗?减少数据库命中率的最佳方法是什么?

共有1个答案

朱建弼
2023-03-14

使用$in运算符或$in(聚合)。

像这样的答案:如何在mongodb中使用$in运算符,在java中使用两个字段

 类似资料:
  • 问题内容: 我希望从我的用户模型中检索一些信息,如下所示: 在主页中,我有一个 位置 过滤器,您可以在其中浏览来自国家或城市的用户。 所有字段还包含其中的用户数: 在主页上,然后我还有“学生和老师”页面,我希望仅提供有关这些国家和城市有多少老师的信息… 我想做的是创建一个对MongoDB的查询,以通过单个查询检索所有这些信息。 此刻查询如下: 问题是我不知道如何获取所需的所有信息。 我不知道如何获

  • 主要内容:概述,一、关联查询优化,1.左(右)外连接,2.内连接,3.JOIN语句原理,4.JOIN小结,5.Hash Join,二、子查询优化,三、排序优化,四、GROUP BY优化,五、优先考虑覆盖索引,六、使用前缀索引,七、索引下推ICP,八、其他查询优化,1.COUNT(*)与COUNT(具体字段)效率,2.不使用SELECT *,3.LIMIT 1优化,4.多使用commit概述 数据库调优的方式有多种: 建立索引、充分利用到索引、不让索引失效 对SQL语句进行优化 调优如缓冲、线程数

  • 本文向大家介绍MongoDB性能优化及监控,包括了MongoDB性能优化及监控的使用技巧和注意事项,需要的朋友参考一下 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 一、索引 MongoDB 提供了多样性

  • 问题内容: 从Java 8开始,Java不提供尾叫优化(TCO)。经过研究,我知道原因是: 在JDK类中,有许多对安全性敏感的方法,它们依赖于对JDK库代码和调用代码之间的堆栈帧进行计数,以确定谁在调用它们。 但是,基于JVM的Scala支持尾叫优化。Scala在编译时进行尾递归优化。Java为什么不能使用相同的方法? PS:不确定Java的最新版本(截至现在的Java 11)是否具有TCO。如果

  • 我正在使用YouTube数据应用编程接口为我最喜欢的一些频道获取视频列表。在功能上,一切都很好,但是现在我感兴趣的频道列表已经增加了,我达到了每日配额。 我目前是这样做的(伪代码): 这很好;我为每个频道获取最近的10个视频。 我想我想做的是: 对于每个频道,请确定最后一个视频的日期 对于在过去“n”天内有最近视频的每个频道,请获取最近的10个视频(根据上面的代码) 我在API上看不到任何用于查找

  • 一、什么是单调栈和单调队列? (1)单调栈 从名字上就听的出来,单调栈中存放的数据应该是严格单调有序的,具有以下两个性质。 1. 满足从栈顶到栈底的元素具有严格的单调递增或单调递减性; 2. 满足栈的后进先出特性,即越靠近栈底的元素越早进栈。 单调栈也分为单调递增栈和单调递减栈。 1. 单调递增栈:单调递增栈就是从栈底到栈顶数据是从小到大 2. 单调递减栈:单调递减栈就是从栈底到栈顶数据是从大到小