【问题标题】:Save a JSON document with a list of embedded binary attachments in MarkLogic在 MarkLogic 中保存带有嵌入式二进制附件列表的 JSON 文档
【发布时间】:2016-06-20 06:44:09
【问题描述】:

例如给定一个实体:

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 中另存为单独的二进制文档,但是如何相互关联(如何将它们与某种外键链接)?

【问题讨论】:

    标签: java marklogic


    【解决方案1】:

    您可以根据自己的选择组织数据。通常,您会将每个二进制文档/附件编写为自己的文档,并在 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)。

    【讨论】:

    • 谢谢山姆。您是否建议这样做,以便在加载父文档时不会强制加载嵌入的二进制附件(可能嵌入为一些 Base64 编码的字符串)?
    猜你喜欢
    • 2016-03-17
    • 2015-07-09
    • 1970-01-01
    • 2019-01-02
    • 2017-09-21
    • 2019-04-19
    • 2015-03-11
    • 1970-01-01
    • 2011-11-11
    相关资源
    最近更新 更多