回答

8

OR的所有文件,因爲它是很難的服務器來擴展它(需要保持狀態爲重複數據刪除)。解決方法是發出2個查詢,每個條件一個,並在客戶端進行重複數據刪除。

+0

正是我現在正在做的。好的,謝謝! – ProblemsOfSumit

+10

我明白答案,但是如果我想要得到所有文檔中'status'爲'a'或'b'或'c'或''''的字段(比如50 OR)。我需要執行50個查詢並加入嗎?它沒有出現超優化?我錯了嗎?有沒有更好的方法來解決這個問題?謝謝。 – nerotulip

+0

@nerotulip在這方面的成功? – Babar

-1

您可以使用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); 

我希望這可以幫助你,問候來自智利!

相關問題