Hi,

I am exporting all the documents from a collection to local directory .
Below is my code.

    public class Extract {
        static // replace with your MarkLogic Server connection information

        DatabaseClient client =
      DatabaseClientFactory.newClient("x", x,
                                      "x", "x",
                                      Authentication.DIGEST);

        private static String EX_DIR = "F:/JavaExtract";

        // Loading files into the database asynchronously
        public static void exportByQuery() {
        DataMovementManager dmm = client.newDataMovementManager();
            // Construct a directory query with which to drive the job.
            QueryManager qm = client.newQueryManager();
            StringQueryDefinition query = qm.newStringDefinition();
            query.setCollections("GOT");


            // Create and configure the batcher
            QueryBatcher batcher = dmm.newQueryBatcher(query);
            batcher.withBatchSize(10)
            .withThreadCount(1)
            .onUrisReady(
                new ExportListener()
                    .onDocumentReady(doc-> {
                        String uriParts[] = doc.getUri().split("/");
                        try {
                           FileOutputStream dest = new
                                 FileOutputStream("F:/Json/file.zip");
                               ZipOutputStream out = new
ZipOutputStream(new
                                 BufferedOutputStream(dest));
                               ZipEntry e = new
ZipEntry(uriParts[uriParts.length - 1]);
                               out.putNextEntry(e);

                               byte[] data = doc.getContent(
                                       new StringHandle()).toBuffer();
                               doc.getFormat();
                               out.write(data, 0, data.length);
                              out.closeEntry();

                              out.close();

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }))
                   .onQueryFailure( exception ->
exception.printStackTrace() );

            dmm.startJob(batcher);

            // Wait for the job to complete, and then stop it.
            batcher.awaitCompletion();
            dmm.stopJob(batcher);
        }

        public static void main(String[] args) {
        exportByQuery();
        }
    }

When i am running it is taking only the last document in `GOT` collection
and keeping in zip rather than taking all.

Cant figure it out where it where i am doing wrong?

Any Help Is Appreciated

Thanks
_______________________________________________
General mailing list
General@developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to