Contentful JS:无法通过匹配参考字段检索条目

Contentful JS: Unable to retrieve entries by matching Reference field

我正在使用 Contentful 的 Javascript API 来构建项目。目前,我遇到一个问题,我得到 "undefined" 作为以下调用的 return。

const query = {
  content_type: "vehicle",
  include: 2,
  select: "fields",
  "fields.site.fields.siteName[match]": id
};

我已经将 "vehicle" 设置为一个模型,该模型使用包含名称、地址等的 "site" 引用。第一层好像可以用[exist],比如

"fields.site[exists]": true

哪个有效,但不能满足我的需要。

我需要的是属于指定站点的任何车辆。显然,我已经确保添加了相关内容,并且在省略 "fields.site.fields..." 行时确实可以看到数据。出于安全考虑,我不会在响应中显示其他站点的车辆。

我错过了什么吗?提高 "include" 级别也没有任何作用。

我相信你在文档中没有看到一句话。

Second is fields.brand.sys.contentType.sys.id=sFzTZbSuM8coEwygeUYes which you use to to filter on fields of entries from content type 2PqfXUJwE8qSYKuM0U6w8M.

所以基本上要使您的查询有效,您还必须定义您的搜索查询匹配的条目的内容类型。

我在 Node.js 中快速制作了您的案例原型。

const { createClient } = require('contentful');
const client = createClient({
  space: '...',
  accessToken: '...'
});

client.getEntries({
  content_type: 'vehicle',
  select: 'fields',
  // this is the line you're missing
  'fields.site.sys.contentType.sys.id': 'site',
  'fields.site.fields.siteName': 'vw-site'
}).then(({items}) => {
  console.log(items);
}).catch(e => console.log(e));

你可以找到详细的例子in the docs

希望对您有所帮助:)