У меня есть следующая коллекция / документы
Location Collection
{
"geoHash" : "wwscjrm3nu01",
"timeStamp" : "March 25, 2020 at 1:07:38 PM UTC-4"
}
{
"geoHash" : "wwscjrm2wc2h",
"timeStamp" : "March 25, 2020 at 2:07:38 PM UTC-4"
}
замените GeoHashs # на приведенный выше пример

Итак, я пытался сделать запрос диапазон этих GeoHashs с упорядочением их по метке времени "DES C", как показано ниже
db.collection('location')
.where('geoHash', '>=', 'wwkxt4kxmmvk')
.where('geoHash', '<=', 'wwt4vsn22peq')
.orderBy('timeStamp', 'DESC')
.limit(15).get()
Это не сработало, пожалуйста, ошибка ниже
Error getting documents { Error: 3 INVALID_ARGUMENT: inequality filter property and first sort order must be the same: geoHash and timeStamp
at callErrorFromStatus (/srv/node_modules/@grpc/grpc-js/build/src/call.js:30:26)
at Http2CallStream.call.on (/srv/node_modules/@grpc/grpc-js/build/src/call.js:79:34)
at emitOne (events.js:121:20)
at Http2CallStream.emit (events.js:211:7)
at process.nextTick (/srv/node_modules/@grpc/grpc-js/build/src/call-stream.js:97:22)
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
code: 3,
details: 'inequality filter property and first sort order must be the
same: geoHash and timeStamp',
metadata: Metadata { internalRepr: Map {}, options: {} } }
Что если У меня есть тысячи или миллионы документов в этой коллекции в месяц или день !? Кто-нибудь из вас сталкивается с этой проблемой и как лучше обойти ее?
Обновление 0.2
Я очень ценю вашу помощь и поддержку в решении этой проблемы. Я воспроизвел то, что вижу в своем конце.
В настоящее время я использую следующий запрос с Node js
db.collection('locations')
.where('geoHash', '>=', 'wwkxt4kxmmvk')
.where('geoHash', '<=', 'wwt4vsn22peq')
.orderBy('geoHash')
.orderBy('timeStamp', 'desc')
.limit(15).get().then(snapshot => {
if (snapshot.empty) {
console.log('No matching documents.');
}
snapshot.forEach(doc => {
console.log(doc.data());
});
});
Ожидается фильтрация GeoHashs> Order GeoHashs> Order it по метке времени. Итак, конечные результаты предполагают упорядоченную временную метку, но я вижу следующее:
10:08:24.901 AM
test
{ geoHash: 'wwscjrm3nu01',
timeStamp: Timestamp { _seconds: 1585227600, _nanoseconds: 0 },
post: '3' }
10:08:24.900 AM
test
{ geoHash: 'wwscjrm3nu01',
timeStamp: Timestamp { _seconds: 1585317000, _nanoseconds: 0 },
post: '1' }
10:08:24.900 AM
test
{ geoHash: 'wwscjrm2wc2h',
timeStamp: Timestamp { _seconds: 1585314000, _nanoseconds: 0 },
post: '2' }
Как вы видите в приведенном выше выводе, я исключаю, что Post 1> 2> 3 основан на timeStamp, но то, что я вижу выше, это Пост 2> 1> 3.