Могу ли я перебрать поле документа типа объекта при запросе коллекции в облачном хранилище? - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть коллекция "Foo".Каждый документ в коллекции имеет свойство / поле "bar", которое представляет собой массив объектов, таких как:

foo = [{
    bar: [{
        id: "random_string",
        "status": "string"
    }, {
        id: "random_string",
        "status": "string2"
    }]
}, {
    bar: [{
        id: "random_string",
        "status": "string"
    }, {
        id: "random_string",
        "status": "string2"
    }]
}]

Что я хочу достичь, так это то, что я хочу иметь возможность запрашивать БД, чтобы я могполучить две разные коллекции, одна со всеми документами в коллекции "foo", в которых значение "string" равно как минимум одному из объектов в массиве "bar", а другая коллекция для всех документов, имеющих строку "string2"в качестве значения хотя бы одного из объектов в массиве "bar".

Это вообще возможно?Я очень много борюсь с этим, поэтому любая помощь будет принята с благодарностью.Я также рад изменить схему БД, если это необходимо, полностью открыт для предложений!

1 Ответ

0 голосов
/ 24 апреля 2018

Вы не можете сделать это с помощью одного запроса, потому что Firestore в настоящее время не поддерживает условия логического ИЛИ. Другими словами, у вас не может быть запроса, который выдаст вам все документы, в которых выполняется любое из условий.

Кроме того, вам нужно иметь возможность вызывать определенное поле в документе, чтобы выполнить запрос к нему. Без определенного поля для использования в запросе нельзя использовать индекс для ускорения, и запрос никогда не будет масштабироваться до величины, предлагаемой Firestore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...