Skip to content

Instantly share code, notes, and snippets.

(: A simple document with URI root /mini :)
xdmp:document-insert("/mini/test-25-1-1.xml", <test>document mini 1</test>);
@nishantsingh1
nishantsingh1 / TriggerExample_Library_Module.xqy
Last active April 26, 2018 09:21
TriggerExample: Shared Library module with a common function
xquery version '1.0-ml';
(: common util module :)
xdmp:document-insert("/SAMPLE/MODULE/sample-library.xqy",
text{ '
xquery version "1.0-ml";
module namespace minilibrary = "minilib";
declare variable $dnamespace := "http://www.sample.net/schema/datahub";
declare function get-metadata() as node() {
@nishantsingh1
nishantsingh1 / TriggerExample_Trigger_Module.xqy
Last active April 25, 2018 06:15
Triggers module definition
xquery version '1.0-ml';
(: evaluate this against the database specified
in the trigger definition minitrigger in this example)
:)
xdmp:document-insert("/action/trg-mini-create-action.xqy",
text{ "
xquery version '1.0-ml';
import module namespace trgr='http://marklogic.com/xdmp/triggers'
at '/MarkLogic/triggers.xqy';
xquery version "1.0-ml";
import module namespace trgr="http://marklogic.com/xdmp/triggers"
at "/MarkLogic/triggers.xqy";
trgr:create-trigger("minitrigger", "Mini trigger example",
trgr:trigger-data-event(
trgr:directory-scope("/mini/", "1"),
trgr:document-content("create"),
trgr:post-commit()),
trgr:trigger-module(xdmp:database("minimodule"), "/", "/action/trg-mini-create-action.xqy"), fn:true(), xdmp:default-permissions() )
xquery version "1.0-ml";
declare variable $xslt :=
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="xml" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
@nishantsingh1
nishantsingh1 / GeospatialCylindricalQuery.xqy
Last active March 16, 2017 04:15
Geospatial query for a cylindrical search
cts:search(doc(),
cts:and-query(
(
cts:element-pair-geospatial-query(xs:QName("location"), xs:QName("lat"), xs:QName("long"), cts:circle(1000, cts:point(37.655983, -122.425525))),
cts:element-range-query(xs:QName("alt"), "<", 4)
)))
@nishantsingh1
nishantsingh1 / sampleGeoData.xml
Created March 14, 2017 07:56
Structure of sample data for Geospatial query
<place>
<name>sixthlayer</name>
<uri>place6.xml</uri>
<location>
<lat>37.655983</lat>
<long>-122.425525</long>
<alt>6</alt>
</location>
</place>
@nishantsingh1
nishantsingh1 / byExample_company_desc_and_locationtype_desc.js
Created November 15, 2016 08:47
Node.js example 4: QBE for range queries sorting on company and path '/location/type' in descending order
var marklogic = require("marklogic");
var conn = require("./env.js").connection;
//create DatabaseClient
var db = marklogic.createDatabaseClient(conn);
var q = marklogic.queryBuilder;
db.documents.query(
q.where(
q.byExample(
@nishantsingh1
nishantsingh1 / byExample_company_and_locaiontype.js
Created November 15, 2016 08:45
Node.js example 3: QBE for range queries using filtered search and sorting on company and path '/location/type'
var marklogic = require("marklogic");
var conn = require("./env.js").connection;
//create DatabaseClient
var db = marklogic.createDatabaseClient(conn);
var q = marklogic.queryBuilder;
db.documents.query(
q.where(
q.byExample(
@nishantsingh1
nishantsingh1 / byExample_company.js
Created November 15, 2016 08:41
Node.js example 2: a simple QBE for range queries using filtered search and sorting on company property in descending order
var marklogic = require("marklogic");
var conn = require("./env.js").connection;
//create DatabaseClient
var db = marklogic.createDatabaseClient(conn);
var q = marklogic.queryBuilder;
db.documents.query(
q.where(
q.byExample(