8
從the docs:如何在Cloud Firestore中使用邏輯或執行復合查詢?
你也可以連接多個where()方法來創建更具體的查詢(邏輯AND)。
如何執行OR
查詢? 例子:
- 給我的所有文件,其中場
status
是open
ORupcoming
- 給我一個不支持該領域
status == open
ORcreatedAt <= <somedatetime>
從the docs:如何在Cloud Firestore中使用邏輯或執行復合查詢?
你也可以連接多個where()方法來創建更具體的查詢(邏輯AND)。
如何執行OR
查詢? 例子:
status
是open
OR upcoming
status == open
OR createdAt <= <somedatetime>
OR
的所有文件,因爲它是很難的服務器來擴展它(需要保持狀態爲重複數據刪除)。解決方法是發出2個查詢,每個條件一個,並在客戶端進行重複數據刪除。
您可以使用rxjs合併操作符綁定兩個Observable。 在這裏你有一個例子。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/merge';
...
getCombinatedStatus(): Observable<any> {
return Observable.merge(this.db.collection('foo', ref => ref.where('status','==','open')).valueChanges(),
this.db.collection('foo', ref => ref.where('status','==','upcoming')).valueChanges());
}
然後你就可以用上面的方法訂閱新的可觀測的更新:
getCombinatedStatus.subscribe(results => console.log(results);
我希望這可以幫助你,問候來自智利!
正是我現在正在做的。好的,謝謝! – ProblemsOfSumit
我明白答案,但是如果我想要得到所有文檔中'status'爲'a'或'b'或'c'或''''的字段(比如50 OR)。我需要執行50個查詢並加入嗎?它沒有出現超優化?我錯了嗎?有沒有更好的方法來解決這個問題?謝謝。 – nerotulip
@nerotulip在這方面的成功? – Babar