查询数据库和发出API请求的有效方法

时间:2016-08-27 12:41:46

标签: php mongodb api

我需要向API提取大约25000,000个请求以获取数据,并且这些请求的关键字存储在MongoDb中。

目前我这样做(pseduo代码):

C:\> batch.bat username:password@hostip
Username: "username"
Password: "password"
HostIP:   "hostip"

C:\> batch.bat root:pass@q@10.120.36.65
Username: "root"
Password: "pass@q"
HostIP:   "10.120.36.65"

...但是由于请求数以千计,我必须每天都这样做,所以我想知道是否有更好,更有效的方法来做到这一点?

是否会更快如果我将关键字存储在一个数组中,以便对数据库进行单个查询,然后使用它来发出API请求?

1 个答案:

答案 0 :(得分:1)

不确定这是否会有所帮助,但我建议对所有文档使用distinct。如果你有查询明确不会工作。

//this will filter all results and return only distinct keywords
$docs = $collection->distinct('keyword');

https://docs.mongodb.com/manual/reference/method/db.collection.distinct/

对于find,尝试返回较少量的数据。仅使用投影的关键字 https://docs.mongodb.com/manual/reference/method/db.collection.find/#find-projection

对于api请求,如果您可以发送一堆关键字,然后保存结果也会提高性能。

离场保存数据仍然是同一时间。

希望这有帮助。