Wenn Sie den standardmäßigen Cloudant Query-Index verwenden (Text eingeben, alles indizieren):
%Vor%Dann sollte der folgende Abfrageselektor funktionieren, um z.B. alle Dokumente mit einem Kreditbetrag & gt; 1000:
%Vor%Ich bin nicht sicher, ob Sie Cloudant Query dazu bringen können, nur verschachtelte Felder innerhalb eines Arrays zu indizieren. Wenn Sie also nicht die Flexibilität des Ansatzes "Index alles" benötigen, ist es wahrscheinlich besser, eine Cloudant-Suche zu erstellen Index, der nur die spezifischen Felder indiziert, die Sie benötigen.
Obwohl Wills Antwort funktioniert, wollte ich Sie wissen lassen, dass Sie mit Cloudant Query andere Indizierungsoptionen für den Umgang mit Arrays haben. Dieser Blog hat die Details zu verschiedenen Kompromissen ( Ссылка ), aber lange Rede kurzer Sinn, denke ich Dies könnte die beste Indexierungsoption für Sie sein:
%Vor% Im Gegensatz zu Wills Index-Everything-Ansatz indizieren Sie hier nur ein bestimmtes Feld, und wenn das Feld ein Array enthält , indexieren Sie auch jedes Element im Array. Insbesondere bei "type": "text"
-Indizes für große Datasets sparen Sie durch die Angabe eines zu indizierenden Felds Zeit und Speicherplatz für die Indexerstellung. Beachten Sie, dass Textindizes, die ein Feld angeben, das folgende Formular im Feld "fields":
verwenden müssen: {"name": "fieldname", "type": "boolean,number, or string"}
Also wäre die entsprechende Cloudant Query "selector":
Anweisung das folgende:
Beachten Sie auch, dass Sie "fields":
nicht als Teil Ihrer "selector":
-Anweisung angeben müssen, aber ich habe hier nur bestimmte Teile von JSON projiziert. Wenn Sie es in Ihrer "selector":
-Anweisung weglassen, wird das gesamte Dokument zurückgegeben.