我的数据库中有三个json文档及其唯一的URI。
/employee/100.json
{
"id": "100",
"name": "niranjan",
"status": "unprocessed"
}
/domain/100.json
{
"id": "100",
"domain": "java"
}
/salary/100.json
{
"id": "100",
"salary": "3000"
}
现在,我必须编写一个javascript查找功能,以基于/employee/100.json中的“ id”从相应文档中获取详细信息。
输出应如下所示:
/final/100.json
{
"id": "100",
"name": "niranjan",
"domain": "java",
"salary": "3000"
}
如何执行此操作?
答案 0 :(得分:2)
一种方法是使用类似于以下内容的查询来检索三个文档:
cts.search(cts.andQuery([
cts.jsonPropertyValueQuery("id", "100"),
cts.orQuery([
cts.jsonPropertyScopeQuery("name", cts.trueQuery()),
cts.jsonPropertyScopeQuery("domain", cts.trueQuery()),
cts.jsonPropertyScopeQuery("salary", cts.trueQuery())
])
]))
范围查询测试属性的存在。检索文档后,您的SJS代码可以创建具有合并属性的JavaScript或JSON对象。
要在生产应用程序中提高效率,可以使用TDE在每个文档上创建索引,然后使用Optic API合并文档。
但是 ...
鉴于所有三个文档共享同一个密钥,更好的方法几乎可以肯定的是保留您确定为输出文档的内容,并过滤出检索时不需要的任何属性。
DataHub框架提供了一种指导的方式来暂存文档和生成统一的文档。
希望有帮助,