使用MarkLogic中的嵌入式二进制附件列表保存JSON文档

时间:2016-06-20 06:44:09

标签: java marklogic

给定一个实体:

public class Page {
   private String description;
   private List<File> attachments; //is it a File or maybe bytes???
}

是否可以(甚至可取)将此文件作为JSON文档保存在MarkLogic中,并将附件作为嵌入文档?

如果是这样的话:

  1. 如何?只是使用client.newJSONDocumentManager()即使混合了二进制数据?
  2. JSON文档的附件字段是否会保留每个文件的文件名?
  3. 否则,我应该将页面保存为JSON文档和每个附件,保存为MarkLogic中的单独二进制文档,但如何相互关联(如何将它们与某种外键链接)?

1 个答案:

答案 0 :(得分:2)

您可以根据自己的选择整理数据。通常,您可以将每个二进制文档/附件编写为其自己的文档,并在ML Server中使用自己的uri。通常,您会在应用程序中为每个选择uri。因此,您可以将该uris列表添加到父文档中。如下所示:

{ description: "some description",
  attachments: [
     "/my/dir/attachments/attachment_1.bin",
     "/my/dir/attachments/attachment_2.bin",
     "/my/dir/attachments/attachment_3.bin"
  ]
}

您可以使用DocumentWriteSet创建包含父文档和二进制附件的批次。然后,您可以使用JSONDocumentManager.write(documentWriteSet)将它们发送到服务器(请参阅Writing Multiple Documents)。