CouchDB Day NYC 2017: Mango

Post on 03-Mar-2017

12 views 0 download

Transcript of CouchDB Day NYC 2017: Mango

Lab: Mango (30 minutes)

Bradley Holt, Developer AdvocateThursday, February 9, 2017

CouchDB Developer Day

@BradleyHolt

Prerequisite: Replication Lab

@BradleyHolt

Mango

Declarative indexes MongoDB-style query language You can still use map/reduce views

@BradleyHolt

http-console

$ npm install http-console -g$ http-console 127.0.0.1:5984

@BradleyHolthttps://github.com/cloudhead/http-console

http-console

$ npm install http-console -g$ http-console 127.0.0.1:5984> http-console 0.6.3> Welcome, enter .help if you're lost.> Connecting to 127.0.0.1 on port 5984.

@BradleyHolthttps://github.com/cloudhead/http-console

Connecting to CouchDB 2.0

$ http-console root:passw0rd@127.0.0.1:5984 --json

@BradleyHolt

Connecting to CouchDB 2.0

$ http-console root:passw0rd@127.0.0.1:5984 --json> http-console 0.6.3> Welcome, enter .help if you're lost.> Connecting to 127.0.0.1 on port 5984.

@BradleyHolt

Connecting to IBM Cloudant

$ http-console https://bradley-holt:passw0rd@bradley-holt.cloudant.com --json

@BradleyHolt

Connecting to IBM Cloudant

$ http-console https://bradley-holt:passw0rd@bradley-holt.cloudant.com --json> http-console 0.6.3> Welcome, enter .help if you're lost.> Connecting to bradley-holt.cloudant.com on port 443.

@BradleyHolt

Mango

/>

@BradleyHolt

Mango

/> /kittens

@BradleyHolt

Mango

/kittens>

@BradleyHolt

Mango

/kittens> POST /_index

@BradleyHolt

Mango

/kittens> POST /_index...

@BradleyHolt

Mango

/kittens> POST /_index... { "index": { "fields": [ "age_weeks", "weight_kilograms" ] } }

@BradleyHolt

Mango

/kittens> POST /_index... { "index": { "fields": [ "age_weeks", "weight_kilograms" ] } }HTTP/1.1 200 OKContent-Type: application/json

{ result: 'created', id: '_design/e19dde7f518129a966ebe072edc66be88d54e694', name: 'e19dde7f518129a966ebe072edc66be88d54e694'}

@BradleyHolt

@BradleyHolt

Mango

/kittens>

@BradleyHolt

Mango

/kittens> POST /_find

@BradleyHolt

Mango

/kittens> POST /_find...

@BradleyHolt

Mango

/kittens> POST /_find... { "selector": { "age_weeks": { "$gte": 7, "$lte": 10 } }, "fields": [ "_id", "age_weeks" ] }

@BradleyHolt

Mango

/kittens> POST /_find... { "selector": { "age_weeks": { "$gte": 7, "$lte": 10 } }, "fields": [ "_id", "age_weeks" ] }HTTP/1.1 200 OKContent-Type: application/json

{ docs: [ { _id: 'tiger', age_weeks: 7 }, { _id: 'daisy', age_weeks: 9 }, { _id: 'mittens', age_weeks: 10 } ]}

@BradleyHolt

@BradleyHolt

Mango

/kittens>

@BradleyHolt

Mango

/kittens> POST /_find

@BradleyHolt

Mango

/kittens> POST /_find...

@BradleyHolt

Mango

/kittens> POST /_find... { "selector": { "age_weeks": { "$gte": 0 }, "weight_kilograms": { "$gte": 0.5, "$lte": 1 } }, "fields": [ "_id", "weight_kilograms" ] }

@BradleyHolt

Mango

/kittens> POST /_find... { "selector": { "age_weeks": { "$gte": 0 }, "weight_kilograms": { "$gte": 0.5, "$lte": 1 } }, "fields": [ "_id", "weight_kilograms" ] }HTTP/1.1 200 OKContent-Type: application/json

{ docs: [ { _id: 'tiger', weight_kilograms: 0.726 }, { _id: 'daisy', weight_kilograms: 0.816 }, { _id: 'mittens', weight_kilograms: 0.997 } ]}

@BradleyHolt

@BradleyHolt

Try It On Your Own

1. Create an index of kittens by weight_kilograms and age_weeks (in that order)

2. Find kittens weighing less than 1 kilogram who are 7 weeks or older

@BradleyHolt

Image Credit

Mango with section on a white background by bangdoll, on Flickr <https://flic.kr/p/9CBP2h>

@BradleyHolt

Lab: MangoCouchDB Developer Day

@BradleyHolt