Как исключить индекс свойства EmbeddedEntity верхнего уровня в Google Datastore с NodeJS? - PullRequest
0 голосов
/ 24 мая 2018

Мне нужно исключить свойство верхнего уровня из индексации хранилищем данных (payload в приведенном ниже примере).Значение payload действительно может варьироваться, и ключи могут легко иметь более 1500 байт, которые ограничивает хранилище данных в EmbeddedEntitites.

payload, по-видимому, не исключается из индексации.Хранилище данных выдает ошибку, что content длиннее 1500 байт.

Как исключить payload из индексации?Спасибо.

const transformedEvent = {
    id: "someString",
    name: "Some Name",
    payload: {
        content: "a very long string",
        foo: "bar"
    }
};

const entity = {
    key: datastore.key('Event'),
    excludeFromIndexes: ['payload'],
    data: transformedEvent
};

await datastore.save(entity);

1 Ответ

0 голосов
/ 25 мая 2018

В вашем примере content и foo также необходимо добавить в массив excludeFromIndexes для исключения.В настоящее время на GitHub .

существует открытый вопрос . Пример:

const transformedEvent = {
    id: "someString",
    name: "Some Name",
    payload: {
        content: "a very long string",
        foo: "bar"
    }
};

const entity = {
    key: datastore.key('Event'),
    excludeFromIndexes: ['payload', 'payload.content', 'payload.foo'],
    data: transformedEvent
};
...