MongoDB 的 $in 查询的问题


  • 註冊用戶

    由于业务需要,自己写了一个关于mongoDB查询

    {'id': {'$in': [长度为十几万的id 列表]}}, 由于项目负责人认为这样写很不好,一定要求改为分段查询,如每次查询id长度为1000, 但并不能确定这就是最好的改善方式。 现在我的疑问是,这样的查询大家一般怎样处理? 或者这样写真的有弊端吗?网络开销是无法避免的了吧?使用batch_size会有什么改善么?


  • 大中华区MongoDB顾问

    肯定有弊端,任何数据库使用IN都不是好的选择,这相当于n个or,每个都需要一次独立的查询。

    RDBMS中一般是用JOIN来避免使用IN。MongoDB中如果出现了IN一个很大的列表的问题,一般问题出在模型设计,或者不合理的需求上。还需要知道具体的问题才好分析。


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待