标记集合NodeJS中的Marklogic QueryByExample
TLDR
有没有办法将queryByExample范围限制在NodeJS中的集合?
面临的问题
我有一个复杂的查询与一些可选的字段(即有时一些search字段将被省略)。 所以我需要dynamic地创build一个查询,例如在JSON中。 QueryByExample似乎是在这里使用的正确的工具,因为它给了我灵活的传递JSON。 然而,我的问题是,我想限制我的search只有一个集合或目录。
例如,我希望有类似的东西
searchJSON = { title: { $word: "test" }, description: { $word: "desc" } }; //query db.documents.query(qb.where( qb.collection("collectionName"), qb.byExample(searchJSON) )).result()...
在这种情况下, searchJSON
可能是dynamic构build的,例如,有时标题可能会从search中省略。
这不起作用,因为查询生成器只允许queryByExample成为唯一的查询。 但我宁愿build立一个仅限于一个集合或目录的dynamicsearch查询。
目前,我认为你将不得不使用QueryBuilder而不是使用Query来表示查询
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中修复的限制