Python execute xquery to marklogic



不允许修改MarkLogic内部的数据,所以问题是我无法执行SQL query。只允许使用XQY,因为数据与表不同。

如何在python3下执行xquery传递给Django Rest Framework?唯一的问题是我不能在marklogic中执行sql,因为name是数组格式的。只有xquery才能完成任务有没有一种方法可以直接在marklogic中执行xquery?还是我需要像zorba一样绑定?

这是我的代码,看起来像。

def search(request):
search = request.GET.get("user_input", 'default')
if request.method == 'GET':
service = xSQL()
rs = service.post(
{}, 
"select Id from Table where name contains '%" + search + "%'"
)
return Response(rs)

marklogic中的json加载:

{
"envelope": {
"instance": {
"Form": [
{
"Id": "202102151",
"year": "2021",
"group":"test",
"name": [
"Jame","Mark","Hero","Vince"
]
}
]
}
}

假设您的目标是加载JSON文档,然后通过SQL查询行(这是一个常见的目标(,您需要在MarkLogic中定义一个视图,以便可以针对该视图运行SQL查询。TDE是一种相当简单的方法,可以根据路径表达式定义具有所需列的视图-https://docs.marklogic.com/guide/app-dev/TDE。您可以使用qconsole定义TDE并将其插入到模式数据库中,然后验证SQL语句是否有效。

一旦你有了它,你就可以使用/v1/eval端点-https://docs.marklogic.com/REST/POST/v1/eval-使用https://docs.marklogic.com/xdmp.sql(或者xdmp:sql,这是XQuery的等价物,但JavaScript通常更容易(。

最新更新