Read
Import restaurants collection
wget https://www.dropbox.com/s/bfi06m1fvemzj69/primer-dataset-small.json
mongoimport --uri "mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/admatic-db" \
--collection restaurants --drop --file primer-dataset-small.json
2019-02-25T16:23:06.163+0000 connected to: localhost
2019-02-25T16:23:06.323+0000 dropping: admatic-db.restaurants
2019-02-25T16:23:06.696+0000 imported 10 documents
Code
mkdir -p src/main/java/com/admatic/primer
vim src/main/java/com/admatic/primer/QueryPrimer.java
package com.admatic.primer;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import com.mongodb.Block;
import com.mongodb.client.FindIterable;
import static com.mongodb.client.model.Filters.and;
import static com.mongodb.client.model.Filters.eq;
import static com.mongodb.client.model.Filters.gt;
import static com.mongodb.client.model.Filters.lt;
import static com.mongodb.client.model.Filters.or;
import static com.mongodb.client.model.Sorts.ascending;
import static java.util.Arrays.asList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class QueryPrimer {
private static void queryAll(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find();
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void queryTopLevelField(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("borough", "Brooklyn"));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void queryEmbeddedDocument(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("address.zipcode", "11369"));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void queryFieldInArray(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("grades.grade", "Z"));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void logicalAnd(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("cuisine", "American").append("address.zipcode", "11219"));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void logicalOr(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("$or", asList(new Document("cuisine", "American"),
new Document("address.zipcode", "10019"))));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void greaterThan(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("grades.score", new Document("$gt", 30)));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void lessThan(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("grades.score", new Document("$lt", 5)));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
private static void sort(MongoDatabase db) {
FindIterable<Document> iterable = db.getCollection("restaurants").find()
.sort(new Document("borough", 1).append("address.zipcode", 1));
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
}
public static void main(final String[] args) {
Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
mongoLogger.setLevel(Level.SEVERE);
MongoClient mongoClient;
if (args.length == 0) {
mongoClient = MongoClients.create();
} else {
mongoClient = MongoClients.create(args[0]);
}
MongoDatabase database = mongoClient.getDatabase("admatic-db");
switch (args[1]) {
case "0":
System.out.println("queryAll");
queryAll(database);
break;
case "1":
System.out.println("queryTopLevelField");
queryTopLevelField(database);
break;
case "2":
System.out.println("queryEmbeddedDocument");
queryEmbeddedDocument(database);
break;
case "3":
System.out.println("queryFieldInArray");
queryFieldInArray(database);
break;
case "4":
System.out.println("logicalAnd");
logicalAnd(database);
break;
case "5":
System.out.println("logicalOr");
logicalOr(database);
break;
case "6":
System.out.println("greaterThan");
greaterThan(database);
break;
case "7":
System.out.println("lessThan");
lessThan(database);
break;
case "8":
System.out.println("sort");
sort(database);
break;
default:
System.out.println("Enter an option between 0 and 8");
}
mongoClient.close();
}
}
Compile
mvn compile
Run
Query All
db.getCollection("restaurants").find()
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 0"
queryAll
Document{{_id=5c741be4cf90d4dbd8427bdb, address=Document{{building=2780, coord=[-73.98241999999999, 40.579505], street=Stillwell Avenue, zipcode=11224}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Tue Jun 10 05:30:00 IST 2014, grade=A, score=5}}, Document{{date=Wed Jun 05 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Apr 13 05:30:00 IST 2012, grade=A,score=12}}, Document{{date=Wed Oct 12 05:30:00 IST 2011, grade=A, score=12}}], name=Riviera Caterer, restaurant_id=40356018}}
Document{{_id=5c741be4cf90d4dbd8427bdc, address=Document{{building=1007, coord=[-73.856077, 40.848447], street=Morris Park Ave, zipcode=10462}}, borough=Bronx, cuisine=Bakery, grades=[Document{{date=Mon Mar 03 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Wed Sep 11 05:30:00 IST 2013, grade=A, score=6}}, Document{{date=Thu Jan 24 05:30:00 IST 2013, grade=A, score=10}}, Document{{date=Wed Nov 23 05:30:00 IST 2011, grade=A, score=9}}, Document{{date=Thu Mar 10 05:30:00 IST 2011, grade=B, score=14}}], name=Morris Park Bake Shop, restaurant_id=30075445}}
Document{{_id=5c741be4cf90d4dbd8427bdd, address=Document{{building=97-22, coord=[-73.8601152, 40.7311739], street=63 Road, zipcode=11374}}, borough=Queens, cuisine=Jewish/Kosher, grades=[Document{{date=Mon Nov 24 05:30:00 IST 2014, grade=Z, score=20}}, Document{{date=Thu Jan 17 05:30:00 IST 2013, grade=A, score=13}}, Document{{date=Thu Aug 02 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Thu Dec 15 05:30:00 IST 2011, grade=B, score=25}}], name=Tov Kosher Kitchen, restaurant_id=40356068}}
Document{{_id=5c741be4cf90d4dbd8427bde, address=Document{{building=469, coord=[-73.961704, 40.662942], street=Flatbush Avenue, zipcode=11225}}, borough=Brooklyn, cuisine=Hamburgers, grades=[Document{{date=Tue Dec 30 05:30:00 IST 2014, grade=A, score=8}}, Document{{date=Tue Jul 01 05:30:00 IST 2014, grade=B, score=23}}, Document{{date=Tue Apr 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Tue May 08 05:30:00 IST 2012, grade=A, score=12}}], name=Wendy'S, restaurant_id=30112340}}
Document{{_id=5c741be4cf90d4dbd8427bdf, address=Document{{building=2206, coord=[-74.1377286, 40.6119572], street=Victory Boulevard, zipcode=10314}}, borough=Staten Island, cuisine=Jewish/Kosher, grades=[Document{{date=Mon Oct 06 05:30:00 IST 2014, grade=A, score=9}}, Document{{date=Tue May 20 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Thu Apr 04 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Tue Jan 24 05:30:00 IST 2012, grade=A, score=9}}], name=Kosher Island, restaurant_id=40356442}}
Document{{_id=5c741be4cf90d4dbd8427be0, address=Document{{building=7114, coord=[-73.9068506, 40.6199034], street=Avenue U, zipcode=11234}}, borough=Brooklyn, cuisine=Delicatessen, grades=[Document{{date=Thu May 29 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Tue Jan 14 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Aug 03 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 18 05:30:00 IST 2012, grade=A, score=10}}, Document{{date=Fri Mar 09 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Fri Oct 14 05:30:00 IST 2011, grade=A, score=9}}], name=Wilken'S Fine Food, restaurant_id=40356483}}
Document{{_id=5c741be4cf90d4dbd8427be1, address=Document{{building=1839, coord=[-73.9482609, 40.6408271], street=Nostrand Avenue, zipcode=11226}}, borough=Brooklyn, cuisine=Ice Cream, Gelato, Yogurt, Ices, grades=[Document{{date=Mon Jul 14 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Wed Jul 10 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 11 05:30:00 IST 2012, grade=A, score=5}}, Document{{date=Thu Feb 23 05:30:00 IST 2012, grade=A, score=8}}], name=Taste The Tropics Ice Cream, restaurant_id=40356731}}
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Document{{_id=5c741be4cf90d4dbd8427be4, address=Document{{building=351, coord=[-73.98513559999999, 40.7676919], street=West 57 Street, zipcode=10019}}, borough=Manhattan, cuisine=Irish, grades=[Document{{date=Sat Sep 06 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Mon Jul 22 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Tue Jul 31 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Thu Dec 29 05:30:00 IST 2011, grade=A, score=12}}], name=Dj Reynolds Pub And Restaurant, restaurant_id=30191841}}
Query Top-Level Field
db.getCollection("restaurants").find(new Document("borough", "Brooklyn"))
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 1"
queryTopLevelField
Document{{_id=5c741be4cf90d4dbd8427bdb, address=Document{{building=2780, coord=[-73.98241999999999, 40.579505], street=Stillwell Avenue, zipcode=11224}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Tue Jun 10 05:30:00 IST 2014, grade=A, score=5}}, Document{{date=Wed Jun 05 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Apr 13 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Wed Oct 12 05:30:00 IST 2011, grade=A, score=12}}], name=Riviera Caterer, restaurant_id=40356018}}
Document{{_id=5c741be4cf90d4dbd8427bde, address=Document{{building=469, coord=[-73.961704, 40.662942], street=Flatbush Avenue, zipcode=11225}}, borough=Brooklyn, cuisine=Hamburgers, grades=[Document{{date=Tue Dec 30 05:30:00 IST 2014, grade=A, score=8}}, Document{{date=Tue Jul 01 05:30:00 IST 2014, grade=B, score=23}}, Document{{date=Tue Apr 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Tue May 08 05:30:00 IST 2012, grade=A, score=12}}], name=Wendy'S, restaurant_id=30112340}}
Document{{_id=5c741be4cf90d4dbd8427be0, address=Document{{building=7114, coord=[-73.9068506, 40.6199034], street=Avenue U, zipcode=11234}}, borough=Brooklyn, cuisine=Delicatessen, grades=[Document{{date=Thu May 29 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Tue Jan 14 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Aug 03 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 18 05:30:00 IST 2012, grade=A, score=10}}, Document{{date=Fri Mar 09 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Fri Oct 14 05:30:00 IST 2011, grade=A, score=9}}], name=Wilken'S Fine Food, restaurant_id=40356483}}
Document{{_id=5c741be4cf90d4dbd8427be1, address=Document{{building=1839, coord=[-73.9482609, 40.6408271], street=Nostrand Avenue, zipcode=11226}}, borough=Brooklyn, cuisine=Ice Cream, Gelato, Yogurt, Ices, grades=[Document{{date=Mon Jul 14 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Wed Jul 10 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 11 05:30:00 IST 2012, grade=A, score=5}}, Document{{date=Thu Feb 23 05:30:00 IST 2012, grade=A, score=8}}], name=Taste The Tropics Ice Cream, restaurant_id=40356731}}
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Query Embedded Document
db.getCollection("restaurants").find(new Document("address.zipcode", "11369")
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 2"
queryEmbeddedDocument
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Query Field in Array
db.getCollection("restaurants").find(new Document("grades.grade", "Z")
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 3"
queryFieldInArray
Document{{_id=5c741be4cf90d4dbd8427bdd, address=Document{{building=97-22, coord=[-73.8601152, 40.7311739], street=63 Road, zipcode=11374}}, borough=Queens, cuisine=Jewish/Kosher, grades=[Document{{date=Mon Nov 24 05:30:00 IST 2014, grade=Z, score=20}}, Document{{date=Thu Jan 17 05:30:00 IST 2013, grade=A, score=13}}, Document{{date=Thu Aug 02 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Thu Dec 15 05:30:00 IST 2011, grade=B, score=25}}], name=Tov Kosher Kitchen, restaurant_id=40356068}}
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Logical AND
db.getCollection("restaurants").find(new Document("cuisine", "American").append("address.zipcode", "11219")
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 4"
logicalAnd
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Logical OR
db.getCollection("restaurants").find(new Document("$or", asList(new Document("cuisine", "American"), new Document("address.zipcode", "10019")
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 5"
logicalOr
Document{{_id=5c741be4cf90d4dbd8427bdb, address=Document{{building=2780, coord=[-73.98241999999999, 40.579505], street=Stillwell Avenue, zipcode=11224}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Tue Jun 10 05:30:00 IST 2014, grade=A, score=5}}, Document{{date=Wed Jun 05 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Apr 13 05:30:00 IST 2012, grade=A,score=12}}, Document{{date=Wed Oct 12 05:30:00 IST 2011, grade=A, score=12}}], name=Riviera Caterer, restaurant_id=40356018}}
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Document{{_id=5c741be4cf90d4dbd8427be4, address=Document{{building=351, coord=[-73.98513559999999, 40.7676919], street=West 57 Street, zipcode=10019}}, borough=Manhattan, cuisine=Irish, grades=[Document{{date=Sat Sep 06 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Mon Jul 22 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Tue Jul 31 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Thu Dec 29 05:30:00 IST 2011, grade=A, score=12}}], name=Dj Reynolds Pub And Restaurant, restaurant_id=30191841}}
Greater Than
db.getCollection("restaurants").find(new Document("grades.score", new Document("$gt", 30))
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 6"
greaterThan
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Lesser Than
db.getCollection("restaurants").find(new Document("grades.score", new Document("$lt", 5))
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 7"
lessThan
Document{{_id=5c741be4cf90d4dbd8427bdc, address=Document{{building=1007, coord=[-73.856077, 40.848447], street=Morris Park Ave, zipcode=10462}}, borough=Bronx, cuisine=Bakery, grades=[Document{{date=Mon Mar 03 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Wed Sep 11 05:30:00 IST 2013, grade=A, score=6}}, Document{{date=Thu Jan 24 05:30:00 IST 2013, grade=A, score=10}}, Document{{date=Wed Nov 23 05:30:00 IST 2011, grade=A, score=9}}, Document{{date=Thu Mar 10 05:30:00 IST 2011, grade=B, score=14}}], name=Morris Park Bake Shop, restaurant_id=30075445}}
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Document{{_id=5c741be4cf90d4dbd8427be4, address=Document{{building=351, coord=[-73.98513559999999, 40.7676919], street=West 57 Street, zipcode=10019}}, borough=Manhattan, cuisine=Irish, grades=[Document{{date=Sat Sep 06 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Mon Jul 22 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Tue Jul 31 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Thu Dec 29 05:30:00 IST 2011, grade=A, score=12}}], name=Dj Reynolds Pub And Restaurant, restaurant_id=30191841}}
Sort
db.getCollection("restaurants").find().sort(new Document("borough", 1).append("address.zipcode", 1)
mvn exec:java -Dexec.mainClass=com.admatic.primer.QueryPrimer \
-Dexec.args="mongodb+srv://admatic:admatic123@admatic-cluster-7qyyr.mongodb.net/test 8"
sort
Document{{_id=5c741be4cf90d4dbd8427bdc, address=Document{{building=1007, coord=[-73.856077, 40.848447], street=Morris Park Ave, zipcode=10462}}, borough=Bronx, cuisine=Bakery, grades=[Document{{date=Mon Mar 03 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Wed Sep 11 05:30:00 IST 2013, grade=A, score=6}}, Document{{date=Thu Jan 24 05:30:00 IST 2013, grade=A, score=10}}, Document{{date=Wed Nov 23 05:30:00 IST 2011, grade=A, score=9}}, Document{{date=Thu Mar 10 05:30:00 IST 2011, grade=B, score=14}}], name=Morris Park Bake Shop, restaurant_id=30075445}}
Document{{_id=5c741be4cf90d4dbd8427be2, address=Document{{building=6409, coord=[-74.00528899999999, 40.628886], street=11 Avenue, zipcode=11219}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Fri Jul 18 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Tue Jul 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Wed Feb 13 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Thu Aug 16 05:30:00 IST 2012, grade=A, score=2}}, Document{{date=Wed Aug 17 05:30:00 IST 2011, grade=A, score=11}}], name=Regina Caterers, restaurant_id=40356649}}
Document{{_id=5c741be4cf90d4dbd8427bdb, address=Document{{building=2780, coord=[-73.98241999999999, 40.579505], street=Stillwell Avenue, zipcode=11224}}, borough=Brooklyn, cuisine=American, grades=[Document{{date=Tue Jun 10 05:30:00 IST 2014, grade=A, score=5}}, Document{{date=Wed Jun 05 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Apr 13 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Wed Oct 12 05:30:00 IST 2011, grade=A, score=12}}], name=Riviera Caterer, restaurant_id=40356018}}
Document{{_id=5c741be4cf90d4dbd8427bde, address=Document{{building=469, coord=[-73.961704, 40.662942], street=Flatbush Avenue, zipcode=11225}}, borough=Brooklyn, cuisine=Hamburgers, grades=[Document{{date=Tue Dec 30 05:30:00 IST 2014, grade=A, score=8}}, Document{{date=Tue Jul 01 05:30:00 IST 2014, grade=B, score=23}}, Document{{date=Tue Apr 30 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Tue May 08 05:30:00 IST 2012, grade=A, score=12}}], name=Wendy'S, restaurant_id=30112340}}
Document{{_id=5c741be4cf90d4dbd8427be1, address=Document{{building=1839, coord=[-73.9482609, 40.6408271], street=Nostrand Avenue, zipcode=11226}}, borough=Brooklyn, cuisine=Ice Cream, Gelato, Yogurt, Ices, grades=[Document{{date=Mon Jul 14 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Wed Jul 10 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 11 05:30:00 IST 2012, grade=A, score=5}}, Document{{date=Thu Feb 23 05:30:00 IST 2012, grade=A, score=8}}], name=Taste The Tropics Ice Cream, restaurant_id=40356731}}
Document{{_id=5c741be4cf90d4dbd8427be0, address=Document{{building=7114, coord=[-73.9068506, 40.6199034], street=Avenue U, zipcode=11234}}, borough=Brooklyn, cuisine=Delicatessen, grades=[Document{{date=Thu May 29 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Tue Jan 14 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Aug 03 05:30:00 IST 2013, grade=A, score=8}}, Document{{date=Wed Jul 18 05:30:00 IST 2012, grade=A, score=10}}, Document{{date=Fri Mar 09 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Fri Oct 14 05:30:00 IST 2011, grade=A, score=9}}], name=Wilken'S Fine Food, restaurant_id=40356483}}
Document{{_id=5c741be4cf90d4dbd8427be4, address=Document{{building=351, coord=[-73.98513559999999, 40.7676919], street=West 57 Street, zipcode=10019}}, borough=Manhattan, cuisine=Irish, grades=[Document{{date=Sat Sep 06 05:30:00 IST 2014, grade=A, score=2}}, Document{{date=Mon Jul 22 05:30:00 IST 2013, grade=A, score=11}}, Document{{date=Tue Jul 31 05:30:00 IST 2012, grade=A, score=12}}, Document{{date=Thu Dec 29 05:30:00 IST 2011, grade=A, score=12}}], name=Dj Reynolds Pub And Restaurant, restaurant_id=30191841}}
Document{{_id=5c741be4cf90d4dbd8427be3, address=Document{{building=8825, coord=[-73.8803827, 40.7643124], street=Astoria Boulevard, zipcode=11369}}, borough=Queens, cuisine=American, grades=[Document{{date=Sat Nov 15 05:30:00 IST 2014, grade=Z, score=38}}, Document{{date=Fri May 02 05:30:00 IST 2014, grade=A, score=10}}, Document{{date=Sat Mar 02 05:30:00 IST 2013, grade=A, score=7}}, Document{{date=Fri Feb 10 05:30:00 IST 2012, grade=A, score=13}}], name=Brunos On The Boulevard, restaurant_id=40356151}}
Document{{_id=5c741be4cf90d4dbd8427bdd, address=Document{{building=97-22, coord=[-73.8601152, 40.7311739], street=63 Road, zipcode=11374}}, borough=Queens, cuisine=Jewish/Kosher, grades=[Document{{date=Mon Nov 24 05:30:00 IST 2014, grade=Z, score=20}}, Document{{date=Thu Jan 17 05:30:00 IST 2013, grade=A, score=13}}, Document{{date=Thu Aug 02 05:30:00 IST 2012, grade=A, score=13}}, Document{{date=Thu Dec 15 05:30:00 IST 2011, grade=B, score=25}}], name=Tov Kosher Kitchen, restaurant_id=40356068}}
Document{{_id=5c741be4cf90d4dbd8427bdf, address=Document{{building=2206, coord=[-74.1377286, 40.6119572], street=Victory Boulevard, zipcode=10314}}, borough=Staten Island, cuisine=Jewish/Kosher, grades=[Document{{date=Mon Oct 06 05:30:00 IST 2014, grade=A, score=9}}, Document{{date=Tue May 20 05:30:00 IST 2014, grade=A, score=12}}, Document{{date=Thu Apr 04 05:30:00 IST 2013, grade=A, score=12}}, Document{{date=Tue Jan 24 05:30:00 IST 2012, grade=A, score=9}}], name=Kosher Island, restaurant_id=40356442}}