Node.js 如何查询目录树而不在内存中加载它们

Node.js 如何查询目录树而不在内存中加载它们,node.js,filesystems,querying,Node.js,Filesystems,Querying,我有一个根目录,例如events 每个事件都是一个包含文件的目录,有数百万个事件 事件目录中的目录: ... 2018-01-17-18:40:51.151343-1bb809 2018-01-17-20:55:22.627688-26ada5 2018-01-17-20:55:27.919532-8243cd 2018-01-17-20:56:30.743072-94e913 2018-01-17-20:57:39.824845-64ccb7 ... 我想做的是: 逐个加载目录,而不是在一

我有一个根目录,例如events

每个事件都是一个包含文件的目录,有数百万个事件

事件目录中的目录:

...
2018-01-17-18:40:51.151343-1bb809
2018-01-17-20:55:22.627688-26ada5
2018-01-17-20:55:27.919532-8243cd
2018-01-17-20:56:30.743072-94e913
2018-01-17-20:57:39.824845-64ccb7
...
我想做的是:

  • 逐个加载目录,而不是在一次调用中加载,例如fs.readDir

  • 由于目录名带有时间戳,我希望能够使用

e、 g

在不同时读取内存中的所有目录的情况下,如何以高性能执行此查询

我用的是NodeJs 9

用的是纯你做不到的

存在,但它将同时返回所有名称


你能做什么

使用node.js执行命令行:

因此,您可以执行
find-regex“在此处输入regexp以匹配您的日期”


由@hexa氰化物生成的堆栈示例:

{ time: 
    $gte: t1
    $lte: t2
}
const util = require('util');
const exec = util.promisify(require('child_process').exec);

async function ls() {
  const { stdout, stderr } = await exec('ls');
  console.log('stdout:', stdout);
  console.log('stderr:', stderr);
}

ls();