У меня есть три коллекции в моем проекте Firebase, одна содержит местоположения, из которых пользователи зарегистрировались, а две другие предназначены для размещения таблиц лидеров с городами и пригородами с наибольшим количеством проверок.
Однако, как немного новые базы данных ie NO SQL, я не совсем уверен, как выполнять запросы, которые мне нужны, чтобы получить и установить нужные мне данные.
В настоящее время моя коллекция checkins имеет эта структура:
{ Suburb:,
City:,
Leaderboard:}
Запись в таблице лидеров является логическим значением для отметки, если регистрация уже была добавлена в таблицу лидеров.
Я хочу сделать запрос для всех результатов, где таблица лидеров значение false, подсчитывать записи для всех городов, подсчитывать записи для всех пригородов, затем добавлять данные о городах и пригородах в отдельную коллекцию, а затем обновлять логическое значение таблицы лидеров, чтобы указать, что они были подсчитаны.
exports.updateLeaderboard = functions.pubsub.schedule('30 * * * *').onRun(async context => {
db.collection('Bears')
.where('Leaderboard', '==', 'false')
.get()
.then(snap =>{
snap.forEach(x => {
//Count unique cities and return object SELECT cities,COUNT(*) AS `count` FROM Bears GROUP BY cities
})
})
.then(() => {
console.log({result: 'success'});
})
.catch(error => {
console.error(error);
});
})
К сожалению, я подошел к пределу своих знаний здесь и хотел бы помочь.