Bisakah saya menanyakan nilai dokumen bersarang di firestore?

Saya ingin melakukan pencarian pada data berikut di firestore: Koleksi->Dokumen->{tanggal{bulan:10,tahun:2017}}

var ref = db.collection(collection).doc(document)
ref.where('date.month', '==', 10).get().then(doc=>{
    if (!doc.exists) {
        console.log('No such document!');
    } else {
        console.log('Document data:', doc.data());
    }
}).catch(err => {
    console.log('Error getting document', err);
});

Kode semu di atas tidak berfungsi. Ada saran?


person Greg    schedule 11.10.2017    source sumber


Jawaban (1)


Sepertinya Anda menanyakan dokumen:

var ref = db.collection(collection).doc(document)

Sebagai gantinya, Anda harus menanyakan koleksi Anda :

var ref = db.collection(collection)

Kueri Anda akan mengambil semua dokumen, yang memenuhi kriteria "tanggal.bulan==10" di antara berbagai dokumen dalam koleksi Anda.

Saya juga pikir Anda harus mengubah cara Anda mengurai data yang berasal dari .get() karena itu akan berupa array:

.then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
            console.log(doc.id, " => ", doc.data());
        });
    })

link ini juga dapat membantu untuk mendapatkan idenya.

person Evgeny Vostok    schedule 11.10.2017