已解决:Node.js API 中的 MarkLogic 数据移动 - queryAll()

问题描述 投票:0回答:2

这是一个错误,补丁即将发布。这个解决方法——由存储库贡献者菲尔·巴伯(Phil Barber)提供——同时对我有用。感谢大家的及时回复!

In the meantime, the work-around is to not have the "database" property in the connection settings and to use a REST port with the correct database assigned.

这里是问题链接,供任何想要跟踪任何更新的人使用。


如果有人能够分享他们关于我在 MarkLogic 数据移动 Node.js API 中遇到的

queryAll()
函数问题的专业知识,我将不胜感激。

我尝试了一个简单的

queryAll()
示例,结果出现以下错误:

MarkLogicError:读取森林信息:无法处理带有路径的 405 状态响应。

该功能目前可以使用吗?我需要进行任何额外的配置或权限更改,或者安装任何额外的插件吗?

MarkLogic 文档引用了 queryAll() 函数,并且 GitHub 上有一个示例查询。在读取批量数据时,自定义数据服务是更优选的方法吗?

这里有一些额外的背景信息:

const marklogic = require("marklogic");
const connection = require("./settings").connection;
const db = marklogic.createDatabaseClient(connection);
const qb = marklogic.queryBuilder;
const ctsQb = marklogic.ctsQueryBuilder;

const query = qb.where(ctsQb.cts.directoryQuery(["/object/"]));

try {
  db.documents.queryAll(query, {
    onCompletion: (summary) => {
      console.log(summary.urisReadSoFar+' uris were retrieved successfully.');
      console.log(summary.urisFailedToBeRead+' uris failed to be retrieved.');
      console.log('Time taken was '+summary.timeElapsed+' milliseconds.');
    },
  })
} catch (err) {
  console.error("QueryAll Error: ", err);
}
  • 我确认简单的 cts 查询在这个更简单的查询示例中有效:
const query = qb.where(ctsQb.cts.directoryQuery(["/object/"]));
db.documents.query(query).result(
  (documents) => {
    documents.forEach((doc) => {
      console.log(doc);
    });
    console.log(`${documents.length} uris were retrieved successfully.`);
  },
  (error) => {
    console.log("Error: ", error);
  }
);
  • 此外,REST API 访问日志显示以下条目:
127.0.0.1 - admin [28/Jan/2024:17:57:48 -0500] "POST /v1/internal/forestinfo&database=my-db-dev HTTP/1.1" 405 0 - -
  • 它是本地 MarkLogic 11 实例(不是数据中心),并且请求是使用 MarkLogic 管理员用户权限运行的。

在查找 Node.js 函数时,我只找到了上面提到的有限内容。您能提供的任何帮助都会很棒。

javascript marklogic marklogic-11
2个回答
1
投票

您能确认一下您数据库中的森林数量吗? “queryAll”在执行查询之前查找森林。这个错误看起来更像是读取森林时的错误,而不是执行查询时的错误。


0
投票

我们刚刚发布了 Node 客户端 3.3.1 版本,修复了这个错误。

© www.soinside.com 2019 - 2024. All rights reserved.