Ich habe eine Tabelle in einer postgresql 9.4 Datenbank mit einem Jsonb-Feld namens Empfänger. Einige Beispiel-Reihen:Postgresql Abfrage Array von Objekten im JSONB-Feld
[{"id": "145119603", "name": "145119603", "type": 2}]
[{"id": "1884595530", "name": "1884595530", "type": 1}]
[{"id": "363058213", "name": "363058213", "type": 1}]
[{"id": "1427965764", "name": "1427965764", "type": 1}]
[{"id": "193623800", "name": "193623800", "type": 0}, {"id": "419955814", "name": "419955814", "type": 0}]
[{"id": "624635532", "name": "624635532", "type": 0}, {"id": "1884595530", "name": "1884595530", "type": 1}]
[{"id": "791712670", "name": "791712670", "type": 0}]
[{"id": "895207852", "name": "895207852", "type": 0}]
[{"id": "144695994", "name": "144695994", "type": 0}, {"id": "384217055", "name": "384217055", "type": 0}]
[{"id": "1079725696", "name": "1079725696", "type": 0}]
Ich habe eine Liste von Werten für id und wollen jede Zeile auszuwählen, die ein Objekt mit einem der Werte aus dieser Liste enthält, innerhalb des Arrays im jsonb Feld.
Ist das möglich? Gibt es einen GIN-Index, den ich beschleunigen kann?
Hier ist ein weiterer Ansatz: http://dba.stackexchange.com/questions/130699/postgresql-json-query-array-against-multiple-values – Chrizt0f
@ Chrizt0f, die meine ist 1. Ansatz ("ANY" kann durch "ODER" Ausdrücke ausgedrückt werden). Normalerweise ist es schwierig, 'jsonb []' in Client-Anwendungen zu binden, aber wenn OP (oder jemand, der daran interessiert ist) dies tun kann, ist es auch eine gültige Lösung - aber beachten Sie, dass es den Index mehrmals verwendet Original-Note gilt immer noch (* Wenn Sie eine kleine (und feste) (sic!) Anzahl der IDs, die abgefragt werden sollen *) - aber mit 'ANY' ist es bequemer, eine nicht festgelegte Anzahl von IDs OFC zu liefern. – pozs