过滤器的 RESTHeart 问题
RESTHeart issue with filters
我一直在 mongodb 之上使用 RESTHeart 以支持 Mongodb 的 REST 界面。当我不使用任何过滤器时它工作正常,但是当我尝试使用 documentation 中提供的 HTTP GET 请求应用过滤器时,我在堆栈跟踪中遇到错误,如下所示。
请求:http://127.0.0.1:8080/inBeta/donor?filter="{'name':'john'}"
14:15:49.373 [XNIO-1 task-1] ERROR c.s.restheart.handlers.ErrorHandler
- error handling the request java.lang.ClassCastException: java.lang.String cannot be cast to org.bson.BSONObject
at com.softinstigate.restheart.db.CollectionDAO.lambda$getCollectionData(CollectionDAO.java:178)
~[restheart.jar:0.9.7]
at com.softinstigate.restheart.db.CollectionDAO$$Lambda/1288164368.accept(Unknown
Source) ~[na:na]
at java.util.ArrayDeque$DeqSpliterator.forEachRemaining(Unknown
Source)~[na:1.8.0_31]
at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[na:1.8.0_31]
at com.softinstigate.restheart.db.CollectionDAO.getCollectionData(CollectionDAO.java:177)
~[restheart.jar:0.9.7]
当我没有应用任何过滤器时它返回 JSON 对象,但是使用过滤器它返回的 BSON 对象,RESTHeart 无法将其转换为 JSON 响应。将不胜感激任何帮助或方向来调查这个问题。
P.S。 RESTHeart 没有标签,所以如果有人可以为它创建标签会很有帮助。
问题终于解决了:)
我尝试使用文档中提供的其他 API,发现除过滤器外一切正常,因此使用以下请求尝试请求:
http://127.0.0.1:8080/inBeta/donor?filter=%7B'username':'john'%7D
它起作用了。因此,罪魁祸首是 双引号 围绕过滤器查询。
我一直在 mongodb 之上使用 RESTHeart 以支持 Mongodb 的 REST 界面。当我不使用任何过滤器时它工作正常,但是当我尝试使用 documentation 中提供的 HTTP GET 请求应用过滤器时,我在堆栈跟踪中遇到错误,如下所示。
请求:http://127.0.0.1:8080/inBeta/donor?filter="{'name':'john'}"
14:15:49.373 [XNIO-1 task-1] ERROR c.s.restheart.handlers.ErrorHandler - error handling the request java.lang.ClassCastException: java.lang.String cannot be cast to org.bson.BSONObject at com.softinstigate.restheart.db.CollectionDAO.lambda$getCollectionData(CollectionDAO.java:178) ~[restheart.jar:0.9.7] at com.softinstigate.restheart.db.CollectionDAO$$Lambda/1288164368.accept(Unknown Source) ~[na:na] at java.util.ArrayDeque$DeqSpliterator.forEachRemaining(Unknown Source)~[na:1.8.0_31] at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source) ~[na:1.8.0_31] at com.softinstigate.restheart.db.CollectionDAO.getCollectionData(CollectionDAO.java:177) ~[restheart.jar:0.9.7]
当我没有应用任何过滤器时它返回 JSON 对象,但是使用过滤器它返回的 BSON 对象,RESTHeart 无法将其转换为 JSON 响应。将不胜感激任何帮助或方向来调查这个问题。
P.S。 RESTHeart 没有标签,所以如果有人可以为它创建标签会很有帮助。
问题终于解决了:)
我尝试使用文档中提供的其他 API,发现除过滤器外一切正常,因此使用以下请求尝试请求:
http://127.0.0.1:8080/inBeta/donor?filter=%7B'username':'john'%7D
它起作用了。因此,罪魁祸首是 双引号 围绕过滤器查询。