我已经开始使用Java Client API处理MarkLogic数据库。我有两个用例: -
JSON的格式为
{
"id" : "12345"
"date" : "2012-12-12",
"messageType" : "dummy_type",
....
}
我可以使用以下代码执行此操作: -
val queryMgr = client.newQueryManager();
var rawHandle: StringHandle = new StringHandle
rawHandle.withFormat(Format.JSON).set("{\"$query\": {\"tradingDate\": { \"$le\":\""+ date + "\"}, \"$filtered\": true}}");
var querydef: RawQueryByExampleDefinition = queryMgr.newRawQueryByExampleDefinition(rawHandle);
querydef.setCollections(collectionName);
jsonDocMgr.search(querydef, 1);
现在我在数据库中有多个文档,其中多个文档是一个id的一部分但是消息类型不同。就像在我有A,B和C作为消息类型,所有的id都是12345.现在根据类型C中的日期参数,我想决定是否需要获取所有文档(A,B和C)或者不应该被拿走。
有人可以建议我是否可以创建javascript函数并使用Java Client API或任何其他内容或任何引用将其传递给MarkLogic数据库?
答案 0 :(得分:1)
我建议您先查看transforming search results。要使用它们,您需要按照说明通过REST或Java安装和测试转换,然后添加querydef.setResponseTransform(new ServerTransform("yourTransformName")
,然后调用QueryManager.search(querydef, new SearchHandle())
。您可以决定每次查询匹配应返回的转换。