MongoDB 使用查询转储数据库中的所有集合

MongoDB dump all collections in a database with query

我想在 mongodb 中转储具有特定时间范围的数据。 转储一个集合是正确的。

mongodump --db VnTrader_Tick_ALL_1106 --collection au1712 --out tick_1106 --query "{ datetime: {$gte: new Date(1509973200000), $lt: new Date(1510038900000) }}"

我想知道如何通过同一个查询转储数据库中的所有集合? 非常感谢

我在 Windows 版本中没有答案。但是我也跨越了这个场景,在xargs的帮助下linux使用了下面的命令实现了今天

echo "show collections" | mongo <dbname> --quiet | grep -v "system.indexes" | xargs -I {} mongodump --db <dbname> --collection {} --query "{}"

我终于用 navie 实现解决了这个问题。

  1. 先用正则表达式在python中生成一个dumpcommond.txt文件

    command_tick = 'mongodump' + '--db' + HOST_TICK_DB + '--collection' + contract + ' --out tick_remote_1 ' + \ ' --query "{ datetime: {$gte: new Date(' + ds_time + '), $lt: new Date(' + de_time + ')}}"' 用 open(MONGODB_BIN_PATH + '\dumpcommond.txt','a') 作为我的文件: myfile.write(command_tick + '\n')

  2. 在mongo/bin

  3. 中打开cmd
  4. 复制并粘贴 dumpcommond.txtcmd 中的所有命令以获取所有集合