首页 > 解决方案 > 从文件中读取 mongodb 查询的值

问题描述

我正在尝试从标准在文件中的 mongodb 集合中查询所有文档。

标准文件.txt:

value1
value2
value3
...

目前我正在构建这样的查询

内置test.js.sh:

#!/bin/bash
echo 'db.collection.find({keyfield: {$in:[' > test.js
cat criteria-file.txt| while read i
do
    echo "\"$i\"," >> test.js
done
echo ']}})' >> test.js

查询文档的大小远低于 16MB,但我想知道是否有更好的方法更优雅、更高效,尤其是因为随着时间的推移,查询文档的大小很可能会超过 16MB。我渴望得到你的建议。

顺便说一句,我想知道,对于那些在当前有 2 亿个条目的集合中寻找的 25K 标准值,查询时间只有一分钟多一点,而且 CPU 负载似乎并不算太​​糟糕。

谢谢!

标签: mongodb

解决方案


将标准文件拆分为不同的块,确保这些块不超过 16MB。

仅在现在您可以并行运行查询时,对每个块运行相同的查询。

如果您想获得更多花哨,您可以使用聚合管道进行查询,并使用此处输入链接描述$match将每个查询的所有输出结果发送到单个结果集合。$merge


推荐阅读