2017-07-08 4 views
0

Ist es möglich, mit einem Array [apple, orange] auf Kategorie abzufragen (auch ein Array. Unten zeigen) und Daten enthält entweder Werte von apple oder orange bekommen?DynamoDB Abfrage enthält einen der Werte von Array für Node.js

row1 | "category": [apple, orange, banana, watermelon] 
row2 | "category": [banana, watermelon] 
row3 | "category": [orange, watermelon] 

Ich erwarte, dass row1, row3 als Ergebnis zu erhalten, die entweder apple oder orange enthält.

Antwort

1

Sie können die Funktion CONTAINS verwenden, um nach Werten in der Liste zu suchen. Wenn Sie jedoch mehrere Werte überprüfen möchten, müssen Sie für jeden Wert die logische OR-Bedingung verwenden.

enthält, ist für Listen unterstützt: Bei der Bewertung "a ENTHÄLT b", "a" kann eine Liste sein; "b" kann jedoch kein Satz, eine Karte oder eine Liste sein.

Beispiel: -

var params = { 
    TableName : 'tableName', 
    FilterExpression: "contains (category, :category1) OR contains (category, :category2)", 
    ExpressionAttributeValues : { 
     ':category1' : "apple", 
     ':category2' : "orange" 
    } 
}; 

Hinweis: -

Ich nahm Sie Scan API verwenden werden. Wenn Sie die Abfrage-API verwenden, fügen Sie bitte die KeyConditionExpression ein.

+0

Vielen Dank! funktioniert gut! :) – Ohsik

Verwandte Themen