Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在marklogic中编写java脚本查找函数?_Marklogic_Marklogic 9 - Fatal编程技术网

如何在marklogic中编写java脚本查找函数?

如何在marklogic中编写java脚本查找函数?,marklogic,marklogic-9,Marklogic,Marklogic 9,我的数据库中有三个json文档,它们具有唯一的URI /employee/100.json { "id": "100", "name": "niranjan", "status": "unprocessed" } /domain/100.json { "id": "100", "domain": "java" } /薪金/100.json { "id": "100", "salary": "3000" } 现在,我必须编写一个javascript查找函数

我的数据库中有三个json文档,它们具有唯一的URI

/employee/100.json

{
  "id": "100", 
  "name": "niranjan", 
  "status": "unprocessed"
}
/domain/100.json

{
  "id": "100", 
  "domain": "java"
}
/薪金/100.json

{
  "id": "100", 
  "salary": "3000"
}
现在,我必须编写一个javascript查找函数,根据/employee/100.json中的“id”从相应的文档中获取详细信息

输出应如下所示:

/final/100.json

{
  "id": "100", 
  "name": "niranjan", 
  "domain": "java",
  "salary": "3000"
}

如何做到这一点???

一种方法是使用类似于以下内容的查询来检索这三个文档:

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框架提供了一种引导性的方法,用于准备文档和生成协调的文档


希望能有所帮助,

一种方法是使用类似于以下内容的查询来检索这三个文档:

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框架提供了一种引导性的方法,用于准备文档和生成协调的文档


希望这能有所帮助,

你能发布你迄今为止尝试过的内容吗?我没有用javascript尝试过任何东西,但我正在经历这个过程。你能发布你迄今为止尝试过的内容吗?我没有用javascript尝试过任何东西,但我正在经历这个过程,谢谢!上面的代码运行良好。但是,如何将其限制为特定集合或uri???我尝试了cts.collectionMatch,但其返回的空序列将cts.collectionQuery()添加到cts.andQuery()的子查询数组中。一般的模式是查询构造函数以*query()结尾。cts.collectionMatch()在集合词典中查找集合。谢谢!上面的代码运行良好。但是,如何将其限制为特定集合或uri???我尝试了cts.collectionMatch,但其返回的空序列将cts.collectionQuery()添加到cts.andQuery()的子查询数组中。一般的模式是查询构造函数以*query()结尾。cts.collectionMatch()在集合词典中查找集合。