给定一个实体例如:
public class Page {
private String description;
private List<File> attachments; //is it a File or maybe bytes???
}
是否可以(甚至建议)将其保存为 MarkLogic 中的 JSON 文档,并将附件作为嵌入文档?
如果是这样:
- 怎么样?即使与二进制数据混合,也只需使用 client.newJSONDocumentManager() ?
- 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/