collection NodeJS 中的 Marklogic QueryByExample

Marklogic QueryByExample in collection NodeJS

TLDR

有没有办法在 NodeJS 中将 queryByExample 限制为 collection?

遇到的问题

我有一个包含一些可选字段的复杂查询(即有时会省略一些搜索字段)。所以我需要动态创建一个查询,例如在 JSON。 QueryByExample 似乎是在这里使用的正确工具,因为它让我可以灵活地传递 JSON。但是我的问题是我想将搜索限制在一个 collection 或目录中。

例如我希望有类似

的东西
searchJSON = {
        title: { $word: "test" },
        description: { $word: "desc" }
};

//query
db.documents.query(qb.where(
    qb.collection("collectionName"),
    qb.byExample(searchJSON)
)).result()...

在这种情况下 searchJSON 可以动态构建,例如有时可能会在搜索中省略标题。

这不起作用,因为查询构建器只允许 queryByExample 成为唯一的查询。但我反而想构建一个仅限于 collection 或目录的动态搜索查询。

目前,我认为您必须使用 QueryBuilder 来表达查询,而不是使用

的 Query By Example
qb.and([
  qb.collection('collectionName'),
  qb.word('title', 'test'),
  qb.word('description', 'desc')
  ])

http://docs.marklogic.com/jsdoc/queryBuilder.html#word

也就是说,Node.js API 应该可以根据 MarkLogic 9.0-2

中的修复放宽该限制

请在 https://github.com/marklogic/node-client-api

上提交问题