Skip to content
Dannes Wessels edited this page Nov 2, 2015 · 7 revisions

Simple example

Using default demo data: list al design documents in beersample:

xquery version "3.0";

import module namespace couchbase = "http://exist-db.org/couchbase/db" 
                at "java:org.exist.couchbase.xquery.CouchbaseModule";

let $clusterId := couchbase:connect("couchbase://localhost")
let $names := couchbase:list-design-documents($clusterId, "beer-sample")
let $results := for $name in $names return ($name, couchbase:get-design-document($clusterId, "beer-sample", $name))
let $close := couchbase:close($clusterId)

return $results

returns

beer
{"spatial":{},"views":{"brewery_beers":{"map":"function(doc, meta) {\n switch(doc.type) {\n case \"brewery\":\n emit([meta.id]);\n break;\n case \"beer\":\n if (doc.brewery_id) {\n emit([doc.brewery_id, meta.id]);\n }\n break;\n }\n}\n"},"by_location":{"reduce":"_count","map":"function (doc, meta) {\n if (doc.country, doc.state, doc.city) {\n emit([doc.country, doc.state, doc.city], 1);\n } else if (doc.country, doc.state) {\n emit([doc.country, doc.state], 1);\n } else if (doc.country) {\n emit([doc.country], 1);\n }\n}"}}}

N1QL

xquery version "3.0";

import module namespace couchbase = "http://exist-db.org/couchbase/db" 
                at "java:org.exist.couchbase.xquery.CouchbaseModule";

let $clusterId := couchbase:connect("couchbase://localhost")
let $results := couchbase:n1ql($clusterId, "travel-sample", 'SELECT COUNT(*) FROM `travel-sample`')
let $close := couchbase:close($clusterId)

return $results

and a bit more here.

JSON

A good test sample:

{
    "firstName": "John",
    "lastName": "Smith",
    "age": 25,
    "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021"
    },
    "phoneNumber": [
        {
            "type": "home",
            "number": "212 555-1234"
        },
        {
            "type": "fax",
            "number": "646 555-4567"
        }
    ],
    "gender": {
        "type": "male"
    }
}
Clone this wiki locally