Javascript MongoDB/mongoose中是否有大型$or查询的替代方案?

Javascript MongoDB/mongoose中是否有大型$or查询的替代方案?,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,想象一下,我在MongoDB有一个很大的收藏,比如 { filename: 'a.jpg', filepath: '/images/83920/', ... }, { filename: 'b.jpg', filepath: '/images/52345/', ... }, { filename: 'c.jpg', filepath: '/images/14152/', ... }, ... { filename: 'xyz.jpg', filepat

想象一下,我在MongoDB有一个很大的收藏,比如

{
  filename: 'a.jpg',
  filepath: '/images/83920/',
  ...
},
{
  filename: 'b.jpg',
  filepath: '/images/52345/',
  ...
},
{
  filename: 'c.jpg',
  filepath: '/images/14152/',
  ...
},
...
{
  filename: 'xyz.jpg',
  filepath: '/images/15325/',
  ...
}
现在我想一次检索多个文档,其中每个文档都符合特定的条件

现在我的做法是:

db.getCollection('images')
    .find({
        $or: [
            {filename: 'b.jpg', filepath: '/images/52345/'},
            ...
            {filename: 'xyz.jpg', filepath: '/images/15325/'},
        ]
     });
我的问题是:在MongoDB/mongoose中有没有替代大型$or查询的方法

差不多

db.getCollection('images')
    .findMultiple([
            {filename: 'b.jpg', filepath: '/images/52345/'},
            ...
            {filename: 'xyz.jpg', filepath: '/images/15325/'},
    ]);
那真的很有帮助


或者$Or链接是实现此目的的理想方法吗?

您可以添加一个派生字段用于查询:

{
  filename: 'a.jpg',
  filepath: '/images/83920/',
  hash: md5(filename, filepath),
  ...
},
然后在(哈希)中查询
$in


这将允许您为哈希字段编制索引。

您可以添加一个派生字段用于查询:

{
  filename: 'a.jpg',
  filepath: '/images/83920/',
  hash: md5(filename, filepath),
  ...
},
然后在(哈希)中查询
$in


这将允许您为散列字段编制索引。

您不喜欢使用
$或
的哪些方面?除了语法之外,您可以分享更多关于您尝试实现的内容吗?您是否使用
$或
达到性能或请求大小限制?示例中省略号的含义是什么?选择具有相同路径的所有文件,这些文件按字典顺序排列在列出的两个文件之间?您不喜欢使用
$或
$的哪些内容?除了语法之外,您可以分享更多有关您尝试实现的内容吗?您是否使用
$或
达到性能或请求大小限制?示例中省略号的含义是什么?选择具有相同路径的所有文件,这些文件按字典顺序排列在列出的两个文件之间?