प्रश्नों का निर्माण वास्तव में केवल बीएसओएन दस्तावेज़ प्रतिनिधित्व बना रहा है, जो मूल रूप से मानक हैश मैप या सूची इंटरफेस के समान ही इंटरफ़ेस है:
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());
}
दोनों रूप अनिवार्य रूप से "क्वेरी" और "प्रोजेक्शन" दोनों घटकों के लिए बीएसओएन का निर्माण करते हैं और उन्हें .find()
के लिए तर्क के रूप में जारी करते हैं। तरीका। वर्ग प्रकार की परिभाषाएँ भी हैं यदि वह आपको भी उपयुक्त बनाती हैं।