2017-10-17 117 views
2

以下是在雲計算公司的FireStore列表查詢一個例子雲公司的FireStore字符串> =字符串

citiesRef.where("state", ">=", "CA").where("state", "<=", "IN") 

是什麼意思?

這是我可以做一個查詢搜索子字符串的方式。例如, 我有一組用戶,我的所有用戶文檔都有first_name和last_name。現在,作爲用戶,我試圖通過輸入部分名稱和搜索來搜索其他用戶。我應該可以編寫一個查詢來獲取名稱中包含該字符串的所有用戶。我如何在Firestore中做到這一點?

+1

如果您有沒有相互關聯的兩個不同的問題,請分別詢問他們所以他們可以更容易地分開回答。 –

+0

對不起,我的措詞。這些主題是相關的。現在我更好地理解它。 –

+0

我必須同意。我來到這裏與您的第二個問題尋找答案。如果有人碰巧回答這兩個問題,那很好,但是最好能提出兩個不同的問題。是的,它們是相關的,但它們不是同一個問題。 – Methodician

回答

2

[Google員工在這裏]要回答你的第一個問題,state <= "IN"是在state屬性值排序小於或等於值"IN"所有文檔的查詢。因此,如果狀態爲"IM",那麼這將是真實的,但如果是"IO""IP",那麼這些狀態就會按照字典順序排列。

"IN"的使用可能在這裏引起混淆,它的意思是印第安納州的縮寫,但它也是許多其他數據庫系統中的保留字。

要回答第二個問題,Cloud Firestore不支持任何本機「包含」,操作或其他常見字符串查詢,如「startsWith」,「endsWith」,「like」等。原因是所有Cloud Firestore查詢必須命中一個索引,現在我們不會以使查詢速度更快的方式對文本字段進行索引。

目前,我們建議使用像Algolia第三方搜索服務提供商,我們提供這樣做這裏的一些指導: https://firebase.google.com/docs/firestore/solutions/search