Marklogic 模板驱动提取:如何在 Javascript 模板中定义可为空?
Marklogic Template Driven Extraction: How to define nullable in Javascript template?
如何指定架构中的列可以为空?
我尝试添加可为 null 的属性:
var myFirstTDE = xdmp.toJSON(
{
"template": {
"context": "/match",
"collections": ["source1"],
"rows": [
{
"schemaName": "soccer",
"viewName": "matches",
"columns": [
{
"name": "id",
"scalarType": "long",
"val": "id",
"nullable": 0
},
{
"name": "document",
"scalarType": "string",
"val": "docUri"
},
{
"name": "date",
"scalarType": "date",
"val": "match-date"
},
{
"name": "league",
"scalarType": "string",
"val": "league"
}
]
}
]
}
}
);
tde.validate(
[myFirstTDE]
);
但这给了我一个模板错误:
"message": "TDE-INVALIDTEMPLATENODE: Invalid extraction template node: fn:doc('')/template/array-node('rows')/object-node()/array-node('columns')/object-node()[1]/number-node('nullable')"
对于使用 XQuery 定义的模板,向列添加 nullable 有效:
<column>
<name>ISSN</name>
<scalar-type>string</scalar-type>
<val>Journal/ISSN</val>
<nullable>true</nullable>
</column>
如何使用 JS/Json 做同样的事情?
使用 "nullable": true
而不是零..
HTH!
如何指定架构中的列可以为空?
我尝试添加可为 null 的属性:
var myFirstTDE = xdmp.toJSON(
{
"template": {
"context": "/match",
"collections": ["source1"],
"rows": [
{
"schemaName": "soccer",
"viewName": "matches",
"columns": [
{
"name": "id",
"scalarType": "long",
"val": "id",
"nullable": 0
},
{
"name": "document",
"scalarType": "string",
"val": "docUri"
},
{
"name": "date",
"scalarType": "date",
"val": "match-date"
},
{
"name": "league",
"scalarType": "string",
"val": "league"
}
]
}
]
}
}
);
tde.validate(
[myFirstTDE]
);
但这给了我一个模板错误:
"message": "TDE-INVALIDTEMPLATENODE: Invalid extraction template node: fn:doc('')/template/array-node('rows')/object-node()/array-node('columns')/object-node()[1]/number-node('nullable')"
对于使用 XQuery 定义的模板,向列添加 nullable 有效:
<column>
<name>ISSN</name>
<scalar-type>string</scalar-type>
<val>Journal/ISSN</val>
<nullable>true</nullable>
</column>
如何使用 JS/Json 做同样的事情?
使用 "nullable": true
而不是零..
HTH!