CoucDB URL: http://vir.inf.u-szeged.hu:5986
Couch DB Fauxton (web GUI): http://vir.inf.u-szeged.hu:5986/_utils (user: VIR, pass: VIRPass123)
Feladatok:
>bash
curl http://vir.inf.u-szeged.hu:5986/
>java
%%loadFromPOM
<dependency>
<groupId>org.lightcouch</groupId>
<artifactId>lightcouch</artifactId>
<version>0.1.8</version>
</dependency>
>java
public class Foo {
private String _id;
private String _rev;
private int intField;
private String stringField;
public String get_id() {
return _id;
}
public void set_id(String _id) {
this._id = _id;
}
public String get_rev() {
return _rev;
}
public void set_rev(String _rev) {
this._rev = _rev;
}
public int getIntField() {
return intField;
}
public void setIntField(int intField) {
this.intField = intField;
}
public String getStringField() {
return stringField;
}
public void setStringField(String stringField) {
this.stringField = stringField;
}
@Override
public String toString() {
return "Str: " + stringField + ", int: " + intField;
}
}
>java
import org.lightcouch.CouchDbClient;
import org.lightcouch.Response;
CouchDbClient dbClient = new CouchDbClient("vir_db", true, "http", "vir.inf.u-szeged.hu", 5986, "VIR", "VIRPass123");
Foo foo = new Foo(); // Plain Java Object
foo.setIntField(33);
foo.setStringField("SSS");
Response response = dbClient.save(foo);
String docid = response.getId();
System.out.println(docid);
>java
foo = dbClient.find(Foo.class, docid);
foo.setStringField("KKK");
dbClient.update(foo);
boolean b = dbClient.contains(foo.get_id());
System.out.println(b);
foo = dbClient.find(Foo.class, docid);
System.out.println(foo.getStringField());
foo = dbClient.find(Foo.class, docid);
dbClient.remove(foo);
>java
List<Foo> list = dbClient.view("ddoc/by_field")
.includeDocs(true)
.query(Foo.class);
list.forEach(System.out::println);
>java
import org.lightcouch.DesignDocument;
import org.lightcouch.DesignDocument.MapReduce;
DesignDocument designDocument = new DesignDocument();
designDocument.setId("_design/mydesign");
designDocument.setLanguage("javascript");
MapReduce getSumOfKKKsMR = new MapReduce();
getSumOfKKKsMR.setMap(
"function(doc) { "
+ " emit(doc.stringField, doc.intField)"
+ "}");
getSumOfKKKsMR.setReduce(
"function (key, values, rereduce) {"
+ "return sum(values)"
+ "}");
Map<String, MapReduce> view = new HashMap<>();
view.put("getSumOfKKKs", getSumOfKKKsMR);
designDocument.setViews(view);
dbClient.design().synchronizeWithDb(designDocument);
int count = dbClient.view("mydesign/getSumOfKKKs").key("KKK").queryForInt();
System.out.println(count);
Feladat: