Конструирането на заявки всъщност е просто създаване на представяне на BSON документ, което по същество е същият интерфейс като стандартните HashMap или List интерфейси според случая:
Document query = new Document("objectKey",new Document( "$regex","Bos"))
.append("cacheVersionString","08/03/15_11:05:09");
Document projection = new Document("_id",0)
.append("objectData",0)
.append("lastModified",0)
.append("productCode",0);
MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();
Където това е основно идентично с начина, по който структурирате заявките в обвивката на MongoDB.
Като алтернатива можете да използвате интерфейси на създател, ако това ви се струва по-логично:
QueryBuilder builder = QueryBuilder.start();
builder.and("objectKey").regex(Pattern.compile("box"));
builder.and("cache_version_string").is("08/03/15_11:05:09");
BasicDBObject query = (BasicDBObject)builder.get();
Bson projection = Projections.exclude(
"_id",
"obectdata",
"lasModified",
"productCode"
);
MongoCursor<Document> cursor = collection.find(query).projection(projection).iterator();
while (cursor.hasNext()) {
Document doc = cursor.next();
System.out.println(doc.toJson());
}
И двата формуляра по същество конструират BSON както за компонентите „query“, така и за „projection“ и ги издават като аргументи на .find()
метод. Има и дефиниции на типове класове, ако това ви устройва.