Bluemix Connect and Compose - 如何使用GET(查找所有实例)方法的Filter参数?

时间:2015-12-23 16:04:44

标签: ibm-cloud connect-compose

我刚刚开始探索新的Bluemix Connect& amp;撰写服务,看起来很棒。它应该非常有用。它花了很长时间才能连接到我之前存在的Cloudant NoSQL DB。

我还没有能够在服务的Connect部分完​​全弄清楚如何在GET(查找所有实例)方法上使用Filter参数。参数的简要说明只是说&#34;过滤器定义字段,where,include,order,offset和limit&#34;。我成功创建了最简单的过滤器,使用其ID来检索单个实例,如下所示:{&#34; where&#34;:{&#34; id&#34;:&#34; 0fa90194e3553a0cad1207cd96531bbd&#34;}} < / p>

问题在于我无法使用任何其他过滤器来执行我想要的操作。例如,我想检索一个实例列表,而不是只检索一个匹配的实例。我还希望能够根据ID以外的其他内容检索实例。

我找到并阅读了Salesforce连接器API(https://www.ng.bluemix.net/docs/services/ConnectandCompose/cc_034.html#cc_026)的文档并且它有所帮助,但我仍然没有真正了解其他过滤器定义字段的方式(例如,包括,顺序,偏移,限制)应该工作。我对其他文档的搜索非常空洞。

非常感谢任何其他文档的提示或指示。

2 个答案:

答案 0 :(得分:1)

请查看Loopback的本文档,它为您的API提供支持:https://docs.strongloop.com/display/public/LB/Querying+data#Queryingdata-RESTsyntax(左侧菜单中还有一些条目可深入了解各种API查询操作的详细信息)。

例如,对返回的结果应用订单可能如下所示: https://<api_url>?filter[order]=propertyName <ASC|DESC>

答案 1 :(得分:0)

LoopBack文档非常有用(感谢@Matt),但事实证明我已经正确解释了有关Bluemix提供的过滤器语法的文档。如果Bluemix文档包含LoopBoack文档的链接,那就太好了。

我认为我错误地使用过滤器的原因是我无法从Cloudant NoSQL DB中检索多个模型实例。我的问题的根源是用于与我的数据库一起工作的连接器(即&#34; loopback-connector-couch&#34;)实际上修改了数据库以映射数据模型。这意味着连接器包含一个名为&#34; loopbackModel&#34;在DB中的文档(模型实例)中,还添加了一个设计文档,该文档有效地过滤掉了不包含&#34; loopbackModel&#34;属性,因此可能无法按预期检索预先存在的文档。我还没有时间回过头来弄清楚&#34; loopbackModel&#34;的所有细节。包括在内,但是掌握了这么多知识我的问题很容易解决,我的过滤器/查询现在正如我所期望的那样工作。如果我开始使用新数据库而不是现有数据库,我根本就不会遇到任何问题。

我个人更喜欢使用字符串化的JSON语法而非替代REST API语法,并且我想分享一个简单的例子:

My Cloudant DB是产品目录。每个产品文档都包含名称,价格和许多其他属性。要按价格降序获取前5个产品的名称和价格,我的过滤器就是:

baseurl/product_db?filter={"fields":{"name":1,"price":1},"limit":5,"order":"price DESC"}

我的JSON回复是:

[
    {"name":"DSLR Camera","price":599.95},
    {"name":"Telephoto Lens","price":29.95},
    {"name":"Wide Angle Lens","price":24.95},
    {"name":"Tripod","price":14.95},
    {"name":"UV Filter","price":4.95}
]

很酷