REQLへの入門は本当に難しかったです。直感的には、まっすぐなイコールマッチの観点からは直感的でしたが、データを正規表現やリストにマッチさせる必要があるときは、突然大変なことになります。次に、一致したものの範囲内で、結果セットからただ1つのキー/値のペアを抜き出したいと思っています。REQL - (正規表現)マッチでフィルタを使用し、ネストされたハッシュのリストから引き抜く
ので、ここでは単一のレコードの近い例だが、言葉がたくさんあります:
{'Components':
{'Drives': [
{'Model': 'SeAGaTe', 'Serial': '04894', 'Size': '1000g'},
{'Model': 'SeagATE', 'Serial': '11279', 'Size': '1000g'},
{'Model': 'Intel', 'Serial': 'WX1748959TTR', 'Size': '250g'}
]},
{'Motherboard':
{'Model': 'X9DRT-HF+', 'Serial': 'VM128848'}
}
},
{'Identity Information':
{'Manufacturer': 'Supermicro', 'Serial': 'TT1434', 'Date Made': '2016-05-03'}
},
{'Logs':
{'Main Log': '<LOG CONTENTS 5,000 LINES>', 'Messages Log': '<LOG CONTENTS 2,000 LINES>'}
}
私はすべてのレコード(約8,000エントリ)を検索しようとしています:
- 駆動します大文字と小文字を区別しないマッチモデル 'シーゲイト'
そして:
- 私はRethinkDBのWebインタフェースを使用していて、これまでのところ、私が来ている最も近いです印刷「のシリアル」キー
の値:問題があるということ
r.db('production').table('logs').filter(
r.row('Components')('Drives').contains(
function(doc){
return doc('Model').match("(?i)seagate").pluck('Serial')})
)
これは正しく結果をフィルタリングしますが、「シリアル」キーだけを表示しているようには見えません。
誰かが私にこれを達成する方法の例を与えて、答えがなぜ機能するのか説明できるなら、本当に感謝します。
ちょっと@Locane、私たちの一人があなたのためにこれを解決しましたか? – dalanmiller