如何将数据复制到另一个集合中以在MarkLogic中重复使用?

时间:2018-09-05 14:26:16

标签: marklogic

我想对Database-ACollection-1的现有数据执行一些操作。一旦执行所有操作,我将丢失原始数据,因为这些数据将被新数据替换。

我想在不同集合Collection-B中创建全部数据的副本到同一数据库Database-A或不同数据库Test中,这样以后我就不会丢失我现有的数据。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

文档由数据库和URI唯一标识。

集合不复制文档。

如果要保留处理阶段,则效率更高 并且将新数据写到不同的URI或数据库中的错误更少(URI更容易),而不是复制旧数据然后再写新数据(1 doc write vs 2,不需要副本,更安全,因为没有文档被覆盖)

这两种方法都使用URI“子目录”层次结构是一种简单而通用的方法。

例如

  • / docs / original /.../名称
  • / docs / stage1 /.../名称
  • / docs / stageN /.../名称

这在很多阶段都是灵活的。

如果使用单独的数据库,则隔离性更好,但是需要您为每个阶段配置一个新数据库,并管理权限,索引等。

如果您决定复制而不是写入新数据库,则在线文档在how to copy documents上给出了很好的示例。