java - 在 MarkLogic 中保存带有嵌入二进制附件列表的 JSON 文档

标签 java marklogic

给定一个实体例如:

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

是否可以(甚至建议)将其保存为 MarkLogic 中的 JSON 文档,并将附件作为嵌入文档?

如果是这样:

  1. 怎么样?即使与二进制数据混合,也只需使用 client.newJSONDocumentManager() ?
  2. JSON 文档的附件字段会保留每个文件的文件名吗?

否则,如果不是,我应该将页面保存为 JSON 文档,并为每个附件保存为 MarkLogic 中的单独二进制文档,但如何相互关联(如何将它们与某种外键链接)?

最佳答案

您可以按照自己的选择组织数据。通常,您会将每个二进制文档/附件编写为自己的文档,并在 ML Server 中使用自己的 uri。通常,您会为应用程序中的每个选项选择 uri。因此,您可以将该 uri 列表添加到父文档中。类似于以下内容:

{ 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 )。

关于java - 在 MarkLogic 中保存带有嵌入二进制附件列表的 JSON 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37916090/

相关文章:

json - MarkLogic 是否原生存储 JSON?

xquery - marklogic 上的扩展树缓存已满

xml - 给定一系列XML路径,生成XML树结构

java - 将嵌套的 for 循环逻辑转换为 for each 和 java 流

java - 客户端扫描HDFS群集的内存并报告已用空间百分比

java - 如果字符串为空,则 Servlet doGet 不起作用

java - 在函数中使用 FileWriter;文件应该已经存在

java - Android ListView 适配器无法与 Parse SDK 一起使用

tidy - 如何获得 xdmp :tidy() to tidy up HTML5?