TLDR
有没有办法将queryByExample限制为NodeJS中的集合?
遇到问题
我有一些带有一些可选字段的复杂查询(即有时候会省略一些搜索字段)。所以我需要动态创建一个查询,例如在JSON中。 QueryByExample似乎是在这里使用的正确工具,因为它为我提供了传递JSON的灵活性。但是我的问题是我想将搜索限制在一个集合或目录中。
e.g。我希望有像
这样的东西searchJSON = {
title: { $word: "test" },
description: { $word: "desc" }
};
//query
db.documents.query(qb.where(
qb.collection("collectionName"),
qb.byExample(searchJSON)
)).result()...
在这种情况下,searchJSON
可以动态构建,例如,有时可能会从搜索中省略title。
这不起作用,因为查询构建器仅允许queryByExample成为唯一的查询。但我反而想建立一个仅限于集合或目录的动态搜索查询。
答案 0 :(得分:2)
目前,我认为您必须使用QueryBuilder而不是使用
按查询来表达查询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中的修复放宽该限制
上提出问题