Skip to main content

What's New in MarkLogic 11

Objects are Now Exported Deeply in Optic

In versions prior to MarkLogic 11, a key-value object was exported as itself. In MarkLogic 11, the keys and values will be examined and exported one by one. Nested objects will be exported as well.

For example, this query

op.fromLexicons({
             uri:cts.uriReference(),
             number:cts.jsonPropertyReference('srchNumber'),
             city:cts.jsonPropertyReference('srchCity')
           },
           'docRange')
        .export();

would have been exported like this in versions prior to MarkLogic 11:

{$optic:{ns:'op', fn:'operators', args:[
    {ns:'op', fn:'from-lexicons', args:[{
            uri:    {uriReference:{}},
            number: {jsonPropertyReference:{property:'srchNumber', scalarType:'int',    nullable:false}},
            city:   {jsonPropertyReference:{property:'srchCity',   scalarType:'string', nullable:false,
                  collation:'http://marklogic.com/collation/'}}
        },
        'docRange']}
      ]}};

In MarkLogic 11, it is exported like this:

{$optic:{ns:'op', fn:'operators', args:[
{ns:'op', fn:'from-lexicons', args:[{
        uri:    {ns: 'cts', fn: 'uri-reference', args: []},
        number: {ns: "cts",
          fn: "json-property-reference",
          args: ["srchNumber", ["type=int"]]
        },
        city:   {ns: "cts",
                 fn: "json-property-reference",
                 args: ["srchCity",
                         ["type=string", "collation=http://marklogic.com/collation/"]
                 ]
               }
        },
        'docRange']}
  ]}};