在CouchDB的许多文档中,当需要更改ID时,最佳路径是什么?

在CouchDB的许多文档中,当需要更改ID时,最佳路径是什么?,couchdb,Couchdb,CouchDB 1.1,Windows。 我从此结构重新组织数据库(示例) 对此 请为文档(单个/多个)建议重命名“\u id”的简单路径:Futon不允许这样做。在设计文档中保存以下视图: 地图: 这将返回您需要处理的所有文档 编写脚本,用include\u docs=true查询视图,并对每一行执行以下操作: 使用新的\u id 删除旧文档 或者,您可以查询旧格式的每个行.id,并将目的地设置为新的\u id,后跟旧的\u id将以下视图保存在设计文档中: 地图: 这将返回您需要处理的所

CouchDB 1.1,Windows。
我从此结构重新组织数据库(示例)

对此


请为文档(单个/多个)建议重命名“\u id”的简单路径:Futon不允许这样做。

在设计文档中保存以下视图:

地图:

这将返回您需要处理的所有文档

编写脚本,用
include\u docs=true查询视图,并对每一行执行以下操作:

  • 使用新的
    \u id
  • 删除旧文档

或者,您可以查询旧格式的每个
行.id
,并将
目的地设置为新的
\u id
,后跟旧的
\u id
将以下视图保存在设计文档中:

地图:

这将返回您需要处理的所有文档

编写脚本,用
include\u docs=true查询视图,并对每一行执行以下操作:

  • 使用新的
    \u id
  • 删除旧文档

或者,您可以查询旧格式的每个
行.id
,并将
目的地设置为新的
\u id
,然后是旧的
\u id

是否必须指定自己的
\u id
?是的,Dominic。这对我的数据库很好:有效地搜索和构建应用程序的视图。您是否必须指定自己的
\u id
?是的,Dominic。这对我的数据库很好:有效地搜索和构建应用程序视图。谢谢,Marcello。这个序列我知道。可能存在重命名数据库中所有_ID的最简单解决方案(在命令行中使用CURL?)。@Andrey,您可以使用COPY-then-DELETE,正如我在文章中概述的那样。使用副本,您不需要检索整个文档。谢谢,Marcello。这个序列我知道。可能存在重命名数据库中所有_ID的最简单解决方案(在命令行中使用CURL?)。@Andrey,您可以使用COPY-then-DELETE,正如我在文章中概述的那样。使用copy,您不需要检索整个文档。
{
    "_id": "0 rock-inorganic 2 m m 10 -50 30 a",
    "inner-coord": [50, 90, 20],
    "map": ...
    ...
}
{
    "_id": "0 2 rock-inorganic 10 -50 30 a",
    "inner-coord": [50, 90, 20],
    "map": ...
    ...
}
function (doc) {
  function isOldDoc() {
    // IT'S AN EXAMPLE: CHANGE IT TO FIT YOUR NEEDS
    return doc._id.match(/^\d \w+ \d \w \w \d+ -?\d+ \d+ \w$/);
  }

  if (isOldDoc()) {
    emit(doc._id, 1);
  }
}