Могу ли я запросить значение вложенного документа в firestore?

Я хочу выполнить поиск по следующим данным в firestore: Коллекция-> Документ -> {date {month: 10, year: 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);
});

Вышеупомянутый псевдокод не работает. Какие-либо предложения?


person Greg    schedule 11.10.2017    source источник


Ответы (1)


Похоже, вы запрашиваете документ:

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

Вместо этого вы должны запрашивать свою коллекцию :

var ref = db.collection(collection)

Ваш запрос подберет все документы, которые соответствуют критерию date.month == 10 среди массива документов в вашей коллекции.

Также я думаю, вам нужно изменить способ анализа данных, поступающих из .get (), потому что это будет массив:

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

Эта ссылка также должна быть полезной. чтобы получить представление.

person Evgeny Vostok    schedule 11.10.2017