2016-04-04 14 views
0

:Operatör VEYA dinamo sorguda böyle aws-sdk ve 'OR' operatörü ile bir sorgu yapmaya çalışıyorum

{ [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 } 

Ben:

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

Ve bu olsun standart amazon dinamo örnek veri dosyasını kullanarak m (Movies, here) -

Sorularım, Dinamo sorgusu için 'VEYA' operatörünü nasıl kullanabilirim?

Teşekkür :)

cevap

1

i keyconditions karma ve yıl ve başlık nitelikleri aralık anahtarlarını karma ve değilse aralığı kilit koşulları ..., kullanmayı deneyin bakın tahmin

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

gibi FilterExpression kullanmayı deneyin Filtre ifadesi veya Durum ifadesi, lütfen yanlış olursa lütfen beni düzeltin ....

0

Teşekkür ederim @ x-kodu bu benim anahtarlarımda değil benim öznitelikler üzerinde sorgulama olduğunu görmeme yardımcı oldu.

yüzden böyle yaptım:

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

Ben de sorgu koşullarında belirtilmesi gereken karma bir sorgunun yerine bir tarama yöntemi kullanılmıştır.

İlgili konular