2016-04-04 12 views
0

Ich versuche, eine Abfrage mit aws-sdk zu machen und 'OR' Operator, wie folgt aus:Operator OR in dynamo Abfrage

{ TableName: 'Movies', 
    KeyConditionExpression: '#year = :year or #title = :title', 
    ExpressionAttributeNames: { '#year': 'year', '#title': 'title' }, 
    ExpressionAttributeValues: { ':year': 1985, ':title': 'The Breakfast Club' } } 

Und ich bekomme diese:

{ [ValidationException: Invalid operator used in KeyConditionExpression: OR] 
    message: 'Invalid operator used in KeyConditionExpression: OR', 
    code: 'ValidationException', 
    time: Mon Apr 04 2016 11:36:22 GMT+0200 (Paris, Madrid (heure d’été)), 
    requestId: '827M149G5IMJ1BPM4J883DMCJNVV4KQNSO5AEMVJF66Q9ASUAAJG', 
    statusCode: 400, 
    retryable: false, 
    retryDelay: 0 } 

I‘ m mit der Standard Amazon Dynamo Beispiel Datei (Movies, here) -

Also meine Frage ist, wie kann ich einen Operator 'OR' für Dynamo-Abfrage verwenden?

Thanks :)

Antwort

1

Versuchen Filterexpression wie

'FilterExpression' => '#year = :year or title = :title' , 

mit i vermuten keyconditions beziehen Schlüssel Bedingungen Hash und Reichweite ... wenn Ihr Jahr und Titel Attribute Hash und Bereich Schlüssel nicht, versuchen Sie es mit Filterexpression oder Bedingung Ausdruck, bitte korrigieren Sie mich, wenn ich falsch bin ....

0

Vielen Dank @ X-Code das half mir zu sehen, dass ich auf meine Schlüssel und nicht meine Attribute abgefragt hatte.

Also habe ich wie folgt aus:

{ 
    TableName: "Movies", 
    FilterExpression: "#title = :title or #title = :titletwo", 
    ExpressionAttributeNames: { 
     "#title": "title" 
    }, 
    ExpressionAttributeValues: { 
     ":title": {'S':'King Kong'}, 
     ":titletwo" : {'S':'Lifeboat'} 
    } 
} 

ich auch ein Scan-Verfahren anstelle einer Abfrage verwendet, die Hash in den Abfragebedingungen erwähnt werden.

Verwandte Themen