Contentful JS: невозможно получить записи, сопоставив поле ссылки
Я использую Javascript API Contentful для создания проекта. В настоящее время у меня есть проблема, когда я получаю "неопределенный" в качестве возврата для следующего вызова.
const query = {
content_type: "vehicle",
include: 2,
select: "fields",
"fields.site.fields.siteName[match]": id
};
Я настроил "транспортное средство" в качестве модели, которая использует ссылку "сайт" с именами, адресами и так далее. Кажется, возможно использовать [существовать] на первом уровне, как
"fields.site[exists]": true
который работает, но неудовлетворительно для того, что мне нужно.
Что мне нужно, так это любые транспортные средства, принадлежащие названному сайту. Очевидно, что я обязательно добавил соответствующий контент, и я действительно могу видеть данные, опуская строку "fields.site.fields...". В целях безопасности у меня не было бы транспортных средств для других сайтов, отображаемых в ответе.
Я что-то пропустил? Повышение уровня "включить" тоже ничего не делает.
1 ответ
Я полагал, что вы не видели ни одного предложения в документах.
Во-вторых, 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));
Вы можете найти подробный пример в документации
Надеюсь, это поможет:)