我正在使用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 ...”行时确实可以看到数据。为了安全起见,我在回复中不会出现其他网站的车辆。
我想念什么吗?提升“包含”级别也不起作用。
答案 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
希望有帮助:)