PouchDB的map / reduce查询API可以向CouchDB发送非常长的GET参数,也可以发送POST。 PouchDB似乎做了一个或另一个依赖。它是如何决定的,并且可以用参数选择方法吗? https://pouchdb.com/api.html#query_database
当使用map / reduce视图时,当opts.keys
选项未定义时,PouchDB会考虑使用POST,但它也检查GET url不是太长。不幸的是,使用stackoverflow.com挑选的PouchDB的MAX_URL_LENGTH
比CouchDB 2.3的最大长度更长。因此,使用中等数量的密钥进行查询将使用GET并失败。没有强制使用一种方法或另一种方法的选项。
(看起来PouchDB对于何时将POST用于其他CouchDB API有不同的规则)
我可以发送到CouchDB 2.3的最长GET请求是1335字节或1300字节,没有协议,主机和端口。
事实证明,这是CouchDB 2.3中的回归,应该在CouchDB 2.3.1中修复。 https://github.com/apache/couchdb/issues/1810