Was entspricht dem IN-Betreiber in Aerospike?
Ich habe einen Satz von dieser Struktur und Daten:
+--------+-----------+---------+
| MODEL | COLOR | OWNER |
+--------+-----------+---------+
|Benz | Red | p1 |
+--------+-----------+---------+
|BMW | Blue | P2 |
+--------+-----------+---------+
|Ferrari | YelloW | P3 |
+--------+-----------+---------+
|Audi | Blue + P4 |
--------------------------------
Jetzt möchte ich in Aerospike nur nach gelben und blauen Autos suchen. Ich suche in der Aerospike-Dokumentation sowohl im AQL- als auch im Query-Bereich, kann aber keine Dinge finden. Ich möchte diese SQL-Abfrage in Aerospike mit dem C # -Client simulieren:
Wählen Sie * aus Autos mit Farbe ('Gelb', 'Rot').
Antworten
Aerospike hat kürzlich Prädikatfilter auf Ausdrücke aktualisiert. Derzeit unterstützen Clients und Server beide, aber irgendwann sind Prädikatfilter veraltet. Ausdrücke sind in der Syntax intuitiver, erreichen die gleiche Funktionalität wie Prädikatfilter und erweitern sie weiter. Für C # sollte dieser Link das Codebeispiel anzeigen:https://github.com/aerospike/aerospike-client-csharp/blob/master/Framework/AerospikeDemo/QueryExp.cs
Farbe IN (Gelb, Rot) entspricht logischerweise Farbe == Gelb ODER Farbe == Rot. Sie können einen solchen Ausdruck erstellen, um die Abfrage zu filtern. Siehe Beispiel als Antwort auf: Verwenden mehrerer logischer Operationen wie ODER, UND, NICHT in Aerospike
Informationen zum C # -Client finden Sie unter: QueryExp.cs im Csharp-Clientcode / Framework / AerospikeDemo