如何在内容查询中检索链接字段
How to retrieve linked fields in Contentful query
我正在使用 Contentful,并且有一个使用一系列相关字段的内容模型。我正在使用 JS api 在 NodeJS 中查询我的内容。如果我像这样调用获取条目
contentfulClient.getEntries({
content_type: 'homePage'
})
它获取类型为主页的所有内容,并包括每个相关字段的实际字段数据,像这样
"subField": {
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "#######"
}
},
"id": "#######",
"type": "Entry",
"createdAt": "2017-03-10T15:58:25.697Z",
"updatedAt": "2017-03-10T15:58:25.697Z",
"revision": 1,
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "homeSubField"
}
},
"locale": "en-GB"
},
"fields": {
"category": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
"subFieldContent": "Some field content"
}
},
但是,如果我调用带有 ID 的特定条目,例如
contentfulClient.getEntry('1234567890')
然后每个链接字段仅作为带有 ID 的引用返回,例如
"subField": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
如何在调用 getEntry 时获取全文,就像我调用 getEntries 一样?
不幸的是,Contentful 在直接通过 id 获取内容项时不包含引用的内容。解决此问题的一种方法是改用 getEntries
方法,但按 sys.id
过滤。这样你会得到相同的条目,虽然在一个数组中,但它也会包含引用的内容。
contentfulClient.getEntries({
content_type: 'homePage',
sys.id: '1234567890'
})
这也会产生一个请求,而不是多个请求,就像您在使用 GetEntry
方法然后手动解析每个引用的内容项时最终会得到的那样。
我正在使用 Contentful,并且有一个使用一系列相关字段的内容模型。我正在使用 JS api 在 NodeJS 中查询我的内容。如果我像这样调用获取条目
contentfulClient.getEntries({
content_type: 'homePage'
})
它获取类型为主页的所有内容,并包括每个相关字段的实际字段数据,像这样
"subField": {
"sys": {
"space": {
"sys": {
"type": "Link",
"linkType": "Space",
"id": "#######"
}
},
"id": "#######",
"type": "Entry",
"createdAt": "2017-03-10T15:58:25.697Z",
"updatedAt": "2017-03-10T15:58:25.697Z",
"revision": 1,
"contentType": {
"sys": {
"type": "Link",
"linkType": "ContentType",
"id": "homeSubField"
}
},
"locale": "en-GB"
},
"fields": {
"category": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
"subFieldContent": "Some field content"
}
},
但是,如果我调用带有 ID 的特定条目,例如
contentfulClient.getEntry('1234567890')
然后每个链接字段仅作为带有 ID 的引用返回,例如
"subField": {
"sys": {
"type": "Link",
"linkType": "Entry",
"id": "#######"
}
},
如何在调用 getEntry 时获取全文,就像我调用 getEntries 一样?
不幸的是,Contentful 在直接通过 id 获取内容项时不包含引用的内容。解决此问题的一种方法是改用 getEntries
方法,但按 sys.id
过滤。这样你会得到相同的条目,虽然在一个数组中,但它也会包含引用的内容。
contentfulClient.getEntries({
content_type: 'homePage',
sys.id: '1234567890'
})
这也会产生一个请求,而不是多个请求,就像您在使用 GetEntry
方法然后手动解析每个引用的内容项时最终会得到的那样。