内容丰富的搜索,其中值也包含一个字段

时间:2018-10-02 18:26:52

标签: javascript contentful

例如,假设我在内容丰富的后端列出了多部电影,并且我只希望查询返回恐怖电影,所以我按类别过滤。

0:fields{
    name: "Some horror movie"
    category: {sys: {…}, fields: {…}} // fields contains in this example: {name: "horror"}
}

请注意,类别本身是一种内容类型,并且具有一个fields属性,其中只有一个name属性。 所以我认为我可以通过以下操作对此进行过滤:

client.getEntries({
      'content_type': 'movie',
      'fields.category.fields.name[match]': 'horror'
    })

这会返回400错误,我真的不知道为什么或如何解决此问题。

1 个答案:

答案 0 :(得分:1)

该查询是正确的,但是在对字段值进行过滤时,还需要对所引用的内容类型进行过滤。您可以在这里阅读有关此内容的更多信息:https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters/search-on-references

如果将其添加到查询中,它将正常工作。

client.getEntries({
  'content_type': 'movie',
  'fields.category.fields.name[match]': 'horror',
  'fields.category.sys.contentType.sys.id': 'horror-content-type-id'
})

您可以在此处找到完整的代码段示例:https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters/search-on-references/search-on-references/console/js

请记住将'horror-content-type-id'替换为恐怖内容类型的实际ID。