Вот пример документа:
{
"id": 12345,
"links": [
{
url: "http://something.com",
created: 1234567890987
},
{
url: "http://somethingelse.com",
created: 1234567891548
},
{
url: "http://somethingweird.com",
created: 1234567898555
}
]
}
Поле created
- это просто временная метка unix. Я хочу иметь возможность выполнять индексированные запросы в поле created
, содержащемся в каждом элементе массива links
. Я понятия не имею, как это сделать (или если это возможно). Например, этот запрос больше не может быть выполнен, так как в таблице очень много документов (около 7 миллионов):
r.db('test').table('very_large_table')
.filter(function(row) {
return row('links').filter(function(link) {
return link('created').ge(1425293715379)
}).isEmpty().not()
})
.count()
ИЗМЕНИТЬ. Поскольку набор данных очень велик, я отказался от запросов в реальном времени для стратегии агрегирования. Теперь вместо того, чтобы пытаться запрашивать эти данные по запросу, у нас есть очереди сообщений и задания агрегирования данных, которые сжимают эти данные, чтобы они уже обрабатывались и запрашивались очень быстро. Еще раз спасибо всем за помощь!