2016-11-18 7 views
4

Ich benutze Marklogic 8.0.6 und ich frage mich, ob wir in Bulk-Methode löschen können. Ich möchte zum Beispiel 150 000 Dokumente löschen, die ich mit einer URI-Liste oder mit gemeinsamen Eigenschaften identifizieren kann (Felder COUNTRY = US und COLOR = BLUE).Marklogic 8: in Masse löschen

Gibt es eine Möglichkeit, eine native ML-Funktion (in node.js) zu verwenden, um diese DELETE im Massenmodus auszuführen (in beiden Fällen: Liste der URIs und gemeinsamen Eigenschaften)? Aus Gründen der Latenz ist es offensichtlich, dass 150 000 API-Aufrufe nicht performant sind.

Danke, Romain.

Antwort

3

Es gibt ein paar Optionen.

  • , wenn es eine collection or directory that you can delete ist, können Sie das tun
  • , wenn Sie die URIs der Dokumente kennen zu löschen, können Sie eine Liste von ihnen an den Löschbefehl übergeben können; Wenn es zu viele für eine Transaktion gibt, können Sie eine Transaktion mit mehreren Anweisungen ausführen, um alle zu erhalten.
  • können Sie auch create a service extension, über die Abfrageparameter senden, und dann können Sie Ihre Erweiterung eine Abfrage ausführen und die Ergebnisse

Aktualisierung mit zusätzlichen Details zum Löschen mehrerer Dokumente löschen. documents.remove nimmt entweder einen String oder ein Array von Strings für die uris Parameter:

db.documents.remove(
    ['/doc1.json', '/doc2.json'] 
) 
+0

„wenn Sie die URIs der Dokumente kennen zu löschen, können Sie eine Liste von ihnen an den Löschbefehl übergeben können;“ =>, wie Sie kann eine Liste senden? –

+0

aktualisiert mit weiteren Details –

+0

danke Dave;) genau das, was ich brauchte –