gpt4 book ai didi

RethinkDB:​​Create Index on field in field in nested array(跑大数据场景)

转载 作者:行者123 更新时间:2023-12-02 08:29:21 25 4
gpt4 key购买 nike

这是一个示例文档:

{
"id": 12345,
"links": [
{
url: "http://something.com",
created: 1234567890987
},
{
url: "http://somethingelse.com",
created: 1234567891548
},
{
url: "http://somethingweird.com",
created: 1234567898555
}
]
}

created 字段只是一个 unix 时间戳。我希望能够在 links 数组的每个项目中包含的 created 字段上运行索引查询。我不知道该怎么做(或者如果可能的话)。例如,这个查询甚至无法完成,因为表中有太多文档(大约 700 万):

r.db('test').table('very_large_table')
.filter(function(row) {
return row('links').filter(function(link) {
return link('created').ge(1425293715379)
}).isEmpty().not()
})
.count()

编辑 由于数据集太大,我放弃了聚合策略的实时查询。现在,我们不再尝试按要求查询这些数据,而是使用消息队列和数据聚合作业来压缩这些数据,以便它已经过处理并且查询速度超快。再次感谢所有的帮助!

最佳答案

您可以像这样在 created 字段上创建多索引:

r.db('test').table('very_large_table')
.indexCreate('links_created', r.row('links')('created'), {multi:true})

然后像这样使用索引:

r.db('test').table('very_large_table')
.between(1425293715379, null, {index:'links_created'})

请参阅此处的文档:http://rethinkdb.com/docs/secondary-indexes/python/

关于RethinkDB:​​Create Index on field in field in nested array(跑大数据场景),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com