内容丰富的JS:无法通过匹配参考字段来检索条目

时间:2018-09-20 09:17:15

标签: javascript api contentful

我正在使用Contentful的Javascript API来构建项目。当前,我遇到一个问题,我得到“未定义”作为以下调用的返回。

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

我已经将“车辆”设置为模型,该模型使用带有名称,地址等的“站点”引用。似乎可以在第一级使用[exist],例如

"fields.site[exists]": true

该方法有效,但不能满足我的需求。

我需要的是属于一个命名站点的所有车辆。显然,我已经确保添加了相关内容,并且在省略“ fields.site.fields ...”行时确实可以看到数据。为了安全起见,我在回复中不会出现其他网站的车辆。

我想念什么吗?提升“包含”级别也不起作用。

1 个答案:

答案 0 :(得分:0)

我相信您在文档中看不到一句话。

  

第二个是fields.brand.sys.contentType.sys.id = sFzTZbSuM8coEwygeUYes,用于过滤内容类型为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

希望有帮助:)