Filemaker 17 API "AND" 查询

Filemaker 17 API "AND" query

我在使用 FileMaker 17 API.

制定 "AND" 查询时遇到困难

参考: https://fmhelp.filemaker.com/docs/17/en/dataapi/index.html#perform-a-find-request

这正在传递到 CURLOPT_POSTFIELDS。

"{"query":[{
    "uniqueID":"fooBar",
    "anotherField":1
}],"limit":"1"}"

我想要发生的是我检索了 1 条记录,其中 uniqueID 是 "fooBar" 并且 anotherField 是 1.

但是,如果我通过了,我会得到相同的记录:

"{"query":[{
    "uniqueID":"",
    "anotherField":1
}],"limit":"1"}"

所以这是在进行 "OR" 查找。

我如何构造此请求以使其执行 "AND" 查找。在我的第二个例子中,查询应该 return 没有记录,因为我的 table 中的每条记录都有一个 uniqueID?

已更新 post-答案:

在我的分析中,我的问题中的第二个查询似乎只是对任何包含字面上 nothing 的 uniqueID 的 AND,我猜 Filemaker 以某种方式将其解释为 true任何记录。

对于来自 MySQL 的人来说,这是非常令人困惑的行为。文档虽然将其展示为 FileMaker 的全局 属性,但在查看 Filemaker API 文档和示例时并不明显。

我知道我刚才真的问过这个问题,但它值得记录,因为 Filemaker API 文档非常粗糙。

"{"query":[{
    "uniqueID":"=fooBar",
    "anotherField":1
}],"limit":"1"}"

那returns我求的记录。

添加 = == 可防止误报,尽管方式不同。

-- 已更新以反映 Rushfire 回答中的细粒度细节。

您正在执行 "AND" 查找。如果查找中的某个字段为空,则不会对其进行搜索。在您的反例中,您仅搜索具有 anotherField:1 的字段。如果您想在空字段上搜索,请使用“=”,因为它只会找到空词。

没有足够的代表发表评论,但对于您之前的回答:

对于 Filemaker 在 uniqueID 上查找,您可能希望使用“==”。 “=”将为您提供单词匹配,而“==”将为您提供精确值匹配。参见 https://fmhelp.filemaker.com/help/12/fmp/en/html/find_sort.5.6.html

同意回复:数据 API 文档。澄清一下,对于以后可能会访问此主题的人:

// this AND that, array with single predicate object

{"query": [{
  "this": "foo",
  "that": "bar"
}]}


// this OR that, array with multiple predicate objects

{"query": [
  {"this": "foo"},
  {"that": "bar"}
]}