Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.mongodb_demo;
- import static com.mongodb.client.model.Filters.eq;
- import static com.mongodb.client.model.Filters.and;
- import static com.mongodb.client.model.Filters.or;
- import static com.mongodb.client.model.Sorts.ascending;
- import static java.util.Arrays.asList;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Locale;
- import org.bson.Document;
- import com.mongodb.Block;
- import com.mongodb.MongoClient;
- import com.mongodb.client.AggregateIterable;
- import com.mongodb.client.FindIterable;
- import com.mongodb.client.MongoCollection;
- import com.mongodb.client.MongoDatabase;
- import com.mongodb.client.model.Sorts;
- import com.mongodb.client.result.UpdateResult;
- /**
- * Hello world!
- *
- */
- public class App
- {
- private static void find(MongoCollection<Document> coll) {
- // returns all documents
- FindIterable<Document> i = coll.find();
- // return documents that match a query document
- i = coll.find(new Document("borough", "Manhattan"));
- // same query, using $eq
- i = coll.find(eq("borough", "Manhattan"));
- // match subdocuments.
- i = coll.find(new Document("address.zipcode", "10075"));
- // same query, using $eq
- i = coll.find(eq("address.zipcode", "10075"));
- // a compound query
- i = coll.find(new Document("grades.score", new Document("$gt", 30)));
- // logical AND/OR
- i = coll.find(new Document("cuisine", "Italian").append("address.zipcode", "10075"));
- i = coll.find(and(eq("cuisine", "Italian"), eq("address.zipcode", "10075")));
- i = coll.find(new Document("$or", asList(
- new Document("cuisine", "Italian"),
- new Document("address.zipcode", "10075"))));
- i = coll.find(or(eq("cuisine", "Italian"), eq("address.zipcode", "10075")));
- // Sort
- i = coll.find().sort(new Document("borough", 1).append("address.zipcode", 1));
- i = coll.find().sort(ascending("borough", "address.zipcode"));
- i.forEach(new Block<Document>() {
- public void apply(Document t) {
- System.out.println(t);
- }
- });
- }
- private static void aggregate(MongoCollection<Document> coll) {
- // How many restaurants in each borough?
- AggregateIterable<Document> i = coll.aggregate(asList(
- new Document("$group", new Document("_id", "$borough").append("count", new Document("$sum", 1)))));
- // How many Brazilian restaurants in Queens are in each zipcode?
- i = coll.aggregate(asList(
- new Document("$match", new Document("borough", "Queens").append("cuisine", "Brazilian")),
- new Document("$group", new Document("_id", "$address.zipcode").append("count", new Document("$sum", 1)))));
- i.forEach(new Block<Document>() {
- public void apply(Document t) {
- System.out.println(t);
- }
- });
- }
- private static void create(MongoCollection<Document> coll) throws ParseException {
- DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
- coll.insertOne(
- new Document("address",
- new Document()
- .append("street", "2 Avenue")
- .append("zipcode", "10075")
- .append("building", "1480")
- .append("coord", asList(-73.9557313, 40.7720266)))
- .append("borough", "Manhattan")
- .append("cuisine", "Italian")
- .append("grades", asList(
- new Document()
- .append("date", format.parse("2014-10-01T00:00:00Z"))
- .append("grade", "A")
- .append("score", 11),
- new Document()
- .append("date", format.parse("2014-01-16T00:00:00Z"))
- .append("grade", "B")
- .append("score", 17)))
- .append("name", "Vella")
- .append("restaurant_id", "41704620"));
- }
- private static UpdateResult update(MongoCollection<Document> coll) {
- UpdateResult retval;
- retval = coll.updateOne(new Document("name", "Juni"),
- new Document("$set", new Document("cuisine", "American (New)"))
- .append("$currentDate", new Document("lastModified", true)));
- return retval;
- }
- private static Document replace(MongoCollection<Document> coll) {
- Document retval;
- retval = coll.findOneAndReplace(new Document("restaurant_id", "41704620"),
- new Document("address",
- new Document()
- .append("street", "2 Avenue")
- .append("zipcode", "10075")
- .append("building", "1480")
- .append("coord", asList(-73.9557313, 40.7720266)))
- .append("name", "Vella 2"));
- return retval;
- }
- public static void main( String[] args ) throws ParseException
- {
- final MongoClient mc = new MongoClient();
- final MongoDatabase db = mc.getDatabase("test");
- final MongoCollection<Document> coll = db.getCollection("restaurants");
- // find(coll);
- // aggregate(coll);
- // create(coll);
- // update(coll);
- // replace(coll);
- mc.close();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement