
op:add-column( $column-builder-plan as map:map, $column as item() ) as map:map
Create a new column definition for use with op:from-docs. This method initializes the column with default properties unless overridden by additional chained methods. Default Behavior: If no other properties are set (such as xpath(), type(), or nullable()), the column defaults to:
./name (where name is the name passed to add-column()).stringtrue| Parameters | |
|---|---|
| $column-builder-plan | The Column Builder Plan. You can either use the XQuery => chaining operator or specify the variable that captures the return value from the previous operation. |
| $column | The name of the column to be defined. This can be either a string or the return value from op:col. |
xquery version "1.0-ml";
import module namespace op="http://marklogic.com/optic"
at "/MarkLogic/optic.xqy";
op:from-docs(
cts:collection-query("fromDocsColl"),
"/my:root",
op:column-builder()
=>op:add-column("id")=>op:nullable(fn:true())=>op:type("integer")=>op:default(-1)
=>op:add-column("name")=>op:expr(op:xpath(op:context(),"my2:name"))=>op:collation("http://marklogic.com/collation/codepoint")
=>op:add-column("testXpath")=>op:xpath("./my2:name" )
=>op:add-column("node")=>op:type("node")=>op:xpath(".")
=>op:add-column("vector")=>op:xpath("./my2:vector")=>op:type("vector")=>op:dimension(3)
=>op:add-column("geo")=>op:type("point")=>op:xpath("./my2:geo" )=>op:coordinate-system("wgs84/double")=>op:units("miles"),
"TEST",
op:fragment-id-col("myFragmentIdCol"),
map:entry("my","https://www.example.com/my")=>map:with("my2","https://www.example.com/my2")
)
=>op:select(("id","name","testXpath","node","vector","geo","myFragmentIdCol"))
=>op:result()
Stack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.