问题描述
r.table('production_plan')
.filter(doc => doc.hasFields('messages'))
.pluck('id','nomer','diameter',{'messages': ['date','text','username']})
结果
{
"diameter": 160,"id": "29aefc95-c701-49ee-abc1-2e1e275abb30","messages": [{
"date": Fri Jun 25 2021 09:06:47 GMT+00:00,"text": "test","username": "John"
}],"nomer": "0038"
},{
"diameter": 110,"id": "e8176c1b-5582-4ab2-80cb-9830de7a4c6b","messages": [{
"date": Thu Jun 24 2021 12:34:19 GMT+00:00,"text": "123","username": "John"
},{
"date": Thu Jun 24 2021 12:36:10 GMT+00:00,"text": "456","username": "Jack"
},{
"date": Thu Jun 24 2021 12:36:42 GMT+00:00,"text": "test1",{
"date": Thu Jun 24 2021 12:37:01 GMT+00:00,"text": "test2 ?","username": "John"
}
],"nomer": "0003"
}
我想选择按日期排序的最后一次按摩
{
"messages": [
{
"date": Fri Jun 25 2021 09:06:47 GMT+00:00,"username": "John","diameter": 160,"nomer": "0038"
},{
"date": Thu Jun 24 2021 12:34:19 GMT+00:00,"diameter": 110,"nomer": "0003"
},"username": "Jack"
"diameter": 110,"nomer": "0003"
},"username": "John"
"diameter": 110,"nomer": "0003"
}
],}
解决方法
通过幼稚的方式解决
r.table('production_plan')
.filter(doc => doc.hasFields('messages'))
.pluck('id','nomer','diameter',{'messages': ['date','text','username']})
.concatMap(v => v('messages').map(msg => ({
date : msg('date'),text : msg('text'),username : msg('username'),id : v('id'),nomer : v('nomer'),diameter : v('diameter')
})))
.orderBy(r.desc('date'))