8

:Bileşik sorguları mantıksal VEYA Cloud Firestore'da nasıl gerçekleştirilir? <a href="https://firebase.google.com/docs/firestore/query-data/queries?authuser=0" rel="noreferrer">the docs</a> itibaren

Ayrıca birden() yöntemleri daha spesifik sorgular (mantıksal AND) oluşturmak için zincirlemek olabilir.

OR sorgusunu nasıl yapabilirim? Örnek:

  1. bana saha status bunun için zor olarak open VEYA
  2. upcoming bana saha status == open VEYA createdAt <= <somedatetime>

cevap

8

OR desteklenmeyen tüm belgeleri verin olan tüm belgeleri ver Sunucu ölçeklendirmek için (devletin tekilleştirilmesini gerektirir). Etraftaki çalışma, her bir durum için bir tane olmak üzere 2 sorgu ve istemciden ayrıştırmaktır.

+0

tam olarak şu anda yapıyorum. Tamam, teşekkürler! – ProblemsOfSumit

+10

Cevabı anlıyorum, ancak eğer "durum" alanı "a" VEYA "b" VEYA "c" VEYA ... "(50 OR diyelim) olduğu tüm belgeleri almak istiyorum. 50 sorgu yapmam ve bunlara katılmam gerekir mi? Süper optimal görünmüyor mu? Yanlış mıyım? Buna yaklaşmanın daha iyi bir yolu var mı? Teşekkürler. – nerotulip

+0

@nerotulip bu konuda herhangi bir başarı? – Babar

-1

rxjs birleştirme işlecini kullanarak iki Gözlemciyi bağlayabilirsiniz. Burada bir örneğiniz var.

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()); 
} 

Sonra yukarıdaki yöntemi kullanarak yeni Gözlenebilen güncellemelere abone olabilir:

getCombinatedStatus.subscribe(results => console.log(results); 

Ben Şili, bu size yardımcı olabilir selam umut !!