Einstieg in REQL war wirklich schwierig. Es schien zunächst intuitiv von einem Gleichstand gleich Match-Standpunkt, aber wird plötzlich sehr schwer, wenn ich Daten mit einem regulären Ausdruck und in einer Liste übereinstimmen muss. Dann möchte ich auch nur ein einziges Schlüssel/Wert-Paar aus der Ergebnismenge herausziehen, und zwar innerhalb des Umfangs der Übereinstimmung.REQL - Verwenden von Filter mit (Regex) Match, und dann Zupfen aus einer Liste in einem verschachtelten Hash
Das ist eine Menge von Worten ist, also hier ein enges Beispiel für einen einzelnen Datensatz:
{'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>'}
}
Ich versuche, alle Datensätze (etwa 8.000 Einträge) für die Suche:
- Laufwerke, Groß- und Kleinschreibung Spiel Modell 'Seagate'
Und dann:
- Drucken den Wert des ‚Serien‘ Schlüssel
ich die Web-Oberfläche von RethinkDB bin mit, und so weit in der Nähe bin ich gekommen ist:
r.db('production').table('logs').filter(
r.row('Components')('Drives').contains(
function(doc){
return doc('Model').match("(?i)seagate").pluck('Serial')})
)
Das Problem ist, dass Während dies die Ergebnisse korrekt filtert, scheint es mir nicht nur den 'Serial' Schlüssel zu zeigen.
Wenn mir jemand ein Beispiel dafür geben könnte, wie das geht, und erklären, warum die Antwort funktioniert, wäre ich wirklich dankbar.
Hey @Locane, hat einer von uns das für dich gelöst? – dalanmiller