2016-04-29 5 views
0

Zur Zeit habe ich bekomme gegeben gespeicherte ProzedurAzure documentdb gespeicherte Prozedur zurückzukehrTeilErgebnis

function getData() {  
    var context = getContext(); 
    var collection = context.getCollection(); 

    var output = collection.map(function (doc) { 
     return { 
      id: doc.id, 
      name: doc.name, 
      status: doc.status, 
      description: doc.description, 
      owner: doc.owner 
     } 
    }) 

    return JSON.stringify(output) 
} 

Problem hier ist, dass es nur returs 7 Dokumente (passend, was Sie bekommen, wenn Sie nicht ‚load‘ Aktion auf azur Panel bekommen) und überspringt den Rest der Sammlung.

Ich glaube, dass es bei der Verwendung von SQL-Abfrage syntaxt festgelegt werden kann, aber ich würde gerne wissen, wie kann ich alle Dokumente in der Sammlung abfragen, ohne es zu benutzen.

+0

sehe ich in letzter Zeit viel, aber warum tun Sie 'JSON.stringify()'. In meinem Code gebe ich einfach die Ausgabe ohne Serialisierung zurück. Ich frage mich, ob es einen Vorteil gibt. –

Antwort

1

Versuchen Sie eine FeedCallback wie gezeigt here hinzuzufügen und machen Sie die Signatur des Rückrufs function(error, resources, options) sein. Suchen Sie nach Fehlern. Überprüfen Sie auch die Optionen Parameter für eine continuation. Wenn das fehlschlägt Sie genügend Informationen geben, um das Problem zu beheben, dann möchten Sie vielleicht eine traditionellere Abfrage und Transformationsansatz berücksichtigen nicht collection.map() verwenden.

+0

Bin schon zu diesem Punkt gekommen. Der Fehlerparameter in FeedCallback wirft 'SyntaxError: Unexpected token u'. Irgendeine Idee, woher es kommt? –

+0

Nichts, was mir einfällt. Ich schlage vor, es als potenziellen Fehler zum DocumentDB-Team eskalieren zu lassen oder zu wechseln, um 'collection.map()' nicht zu verwenden. Ich denke, .map wurde hinzugefügt Javascript nativen Abfragen zu unterstützen, und es würde mich nicht überraschen, wenn es weniger gut außerhalb eines 'collection.chain()' getestet wurde. Da Sie Werte in Ihrer Map-Funktion Transformation nicht, können Sie diese Funktionalität duplizieren nur durch die Felder spezifizieren Sie in der SELECT-Klausel wollen. Beachten Sie, dass Sie im Falle von Fortsetzungen immer noch mit Paging arbeiten müssen. –

+0

Wird Larry tun. Versuchen Sie, natives JavaScript zu testen, um Dokumente in Sammlungen abzufragen, aber wie Sie gesagt haben, scheint es nicht wie erwartet zu funktionieren. –