2016-05-02 25 views
1

Ist dieser Code von soda-js unterstützt zu bekommen, und wenn ja, warum ich erhalte einen 500-StatuscodeWas mache ich falsch einen 500 status

var identifier = 'fgzt-sd3n' 
var op = new soda.Consumer('data.cms.gov', options); 
op.query() 
    .withDataset(identifier) 
    .where({npi:"in('1598908824','1194758300')"}) 
    .getRows() 
    .on('success', function(rows){console.log(rows)}) 
    .on('error', function(error){console.log(error)}) 
} 

kann auch meine Liste ein Array oder zumindest eine Zeichenfolge sein vielleicht Variable wie

'in('+strList+')' 

wo

var strList="'1598908824','1194758300'" 

Antwort

1

dies stattdessen versuchen:

var identifier = 'fgzt-sd3n' var op = new 
soda.Consumer('data.cms.gov', options); op.query() 
    .withDataset(identifier) 
    .where({"npi in('1598908824','1194758300')"}) 
    .getRows() 
    .on('success', function(rows){console.log(rows)}) 
    .on('error', function(error){console.log(error)}) } 

Ich vermute, dass die where Sie waren auf der Durch Sie vor bekam eine SOQL Abfrage von $where=npi=in(...), die fehlschlagen würde.

Sie sollten einen 400 Fehler anstelle einer nicht hilfreich 500 erhalten haben - ich werde einen Fehler auf diesem einen!

+0

Ok, ich denke du meintest 'where (" npi in ('1598908824', '1194758300') ") was perfekt funktioniert. Danke, –

+0

Was ist die Grenze für Elemente, die ich innerhalb der 'in (...)' haben kann. 500 Elemente wird eindeutig nicht unterstützt, da es zurückgibt '{}' –

+0

Es hängt von Ihrer HTTP-Bibliothek ab, aber Ihre gesamte SoQL-Abfrage Länge muss weniger als 2000 bis 4000 Zeichen sein. Unser System wird alles, was länger als 4000 ist, blockieren, aber viele Bibliotheksimplementierungen haben einen höheren Wert als 2000. – chrismetcalf