#google-cloud-firestore
#google-облако-firestore
Вопрос:
Я новичок в firestore. Я в замешательстве, каким будет результат этого кода.
collection ("products").where (
"category" ,
"array-contains-any" , ["Appliances" , "Electronics"]
)
Вы можете просто написать название документа. (Например, документ 1, документ 3)
Документ показан на изображении.
Для получения дополнительной информации посетите эту страницу
Ответ №1:
Это просто! Давайте рассмотрим этот сценарий, в котором все значения представлены в виде строк.
массив-содержит-любой
Параметр: (Строка, ‘array-contains-any’ , массив)
collection("products").where( "category" , "array-contains-any" , ["Appliances" , "Electronics"])
В результате мы получим документы, которые имеют category
либо Appliances
, либо Electronics
Результат: [ ‘Тостер’, ‘Радионяня’, ‘Проигрыватель Blu-ray’]
массив-содержит
Параметр: (Строка, ‘array-contains’ , Строка)
collection("products").where( "category" , "array-contains" , "Appliances")
Это дало бы нам документы в качестве результата, который имеет category
с Appliances
Результат: [ ‘Тостер’, ‘Радионяня’]
Итак, это означает, что когда у вас есть несколько элементов для поиска, мы можем использовать array-contains-any, или же, если вы хотите, чтобы в массиве присутствовал один элемент, тогда мы можем использовать array-contains
Ответ №2:
Запрос напечатает любые документы, в category
поле которых есть любое из значений [«Бытовая техника», «Электроника»].
Таким образом, запрос будет извлекать документы:
Toaster
потому что он имеетAppliances
значение вcategory
.Baby Monitor
потому что в нем есть обаAppliances
иElectronics
вcategory
.Blu-ray Player
потому что он имеетElectronics
значение вcategory
.
Однако запрос не вернет Lipstick
результат, поскольку в этом документе нет ни Appliances
ни Electronics
в его category
поле.