2012-07-05 8 views
13

Sto tentando di utilizzare un'operazione di scansione su una tabella DynamoDB per abbinare gli elementi con determinati "tag". I tag per un elemento sono memorizzati in un singolo attributo set. Ad es .:DynamoDB Scansione con filtro, corrispondente alle condizioni "in ordine"

machine-1: tags = "windows", "iis", "64bit" 
machine-2: tags = "windows", "fs"

Ora, ho un caso di supporto aperto con Supporto Premium, ma ci vuole un po 'di tempo. Quello che voglio fare è abbinare le macchine in cui "tag" contiene la voce "windows" e "iis".

Posso abbinare un singolo utilizzando la modalità CONTAINS e specificando un singolo AttributeValue con un valore stringa di "windows", ad esempio.

Tuttavia, CONTAINS non supporta set in un singolo AttributeValue o più AttributeValues. Dà un errore.

Così ho provato il IN (suggerito anche un supporto di AWS premium): tuttavia, se utilizzo un singolo AttributeValue (anche solo cercando "windows" di nuovo o multiple), ottengo zero risultati.

La documentazione per IN è piuttosto scadente. L'operazione è descritta in 4 parole non informative, infatti: "controlla le corrispondenze esatte".

Mentre aspetto che il supporto possa continuare con qualche altro giro di Q & A, chiunque sta leggendo questo familiare con questo tipo di query con Scan? (Se si potesse, si prega di verificare quello che dici nella tua risposta prima:! Penso di aver provato quelli ovvi)

Per ref, la documentazione di scansione: http://docs.amazonwebservices.com/amazondynamodb/latest/developerguide/API_Scan.html

+1

Quando ricevo una risposta (beh, una buona: non va bene fino ad ora) dal supporto premium la posterò qui. Prendendo molto tempo, ma stanno contattando direttamente gli sviluppatori ora .. –

risposta

10

Questo dal supporto premium AWS:

"Ciao.

ho avuto la conferma da Dynamo DB non è attualmente supportato. CONTIENE contro un set può essere eseguita solo con un singolo valore."

Urgh. Così ora creerò un nuovo attributo per ogni possibile tag, con un 'Vero' o 'Falso' in ogni colonna, e filtro la mia scansione su quello.

+0

avresti potuto fare "tag contiene windows o tag contiene iis" –

Problemi correlati