【发布时间】:2019-03-06 03:40:15
【问题描述】:
PouchDB 的 map/reduce 查询 API 可以向 CouchDB 发送很长的 GET 参数,也可以 POST。 PouchDB 似乎会根据情况做一个或另一个。它是如何决定的,可以用参数选择方法吗? https://pouchdb.com/api.html#query_database
【问题讨论】:
标签: pouchdb
PouchDB 的 map/reduce 查询 API 可以向 CouchDB 发送很长的 GET 参数,也可以 POST。 PouchDB 似乎会根据情况做一个或另一个。它是如何决定的,可以用参数选择方法吗? https://pouchdb.com/api.html#query_database
【问题讨论】:
标签: pouchdb
当使用 map/reduce 视图时opts.keys 选项未定义时,PouchDB 会考虑使用 POST,但它也会检查 GET url 是否太长。不幸的是,使用 stackoverflow.com 挑选的 PouchDB 的 MAX_URL_LENGTH 比 CouchDB 2.3 的最大长度长。因此,具有中等数量键的查询将使用 GET 并失败。没有强制使用一种或另一种方法的选项。
(看起来 PouchDB 对于其他 CouchDB API 何时使用 POST 有不同的规则)
我可以发送到我的 CouchDB 2.3 的最长 GET 请求是 1335 字节或 1300 字节,没有协议、主机和端口。
事实证明这是 CouchDB 2.3 中的回归,应该在 CouchDB 2.3.1 中修复。 https://github.com/apache/couchdb/issues/1810
【讨论】: