给定一个实体:
public class Page {
private String description;
private List<File> attachments; //is it a File or maybe bytes???
}
是否可以(甚至可取)将此文件作为JSON文档保存在MarkLogic中,并将附件作为嵌入文档?
如果是这样的话:
否则,我应该将页面保存为JSON文档和每个附件,保存为MarkLogic中的单独二进制文档,但如何相互关联(如何将它们与某种外键链接)?
答案 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)。