MongoDB कलेक्शन से डेटा प्राप्त करते समय आप प्रोजेक्शन का उपयोग करके केवल आवश्यक डेटा का चयन कर सकते हैं। Java में, आप projection() मेथड का उपयोग करके कलेक्शन से डॉक्यूमेंट्स पढ़ते समय आवश्यक डेटा प्रोजेक्ट कर सकते हैं। इस मेथड को find() के परिणाम पर इनवोक करें, आवश्यक फ़ील्ड नामों को पास करके -
projection(Projections.include("name", "age"));
उदाहरण
निम्नलिखित Java उदाहरण कलेक्शन से डॉक्यूमेंट्स पढ़ते हैं, प्रोजेक्शन का उपयोग करके हम केवल name और age फ़ील्ड के मान प्रदर्शित कर रहे हैं।
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Projections;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.bson.Document;
import com.mongodb.MongoClient;
public class ProjectionExample {
public static void main(String args[]) {
// MongoDB क्लाइंट बनाना
MongoClient mongo = new MongoClient("localhost", 27017);
// डेटाबेस से कनेक्ट करना
MongoDatabase database = mongo.getDatabase("myDatabase");
// कलेक्शन ऑब्जेक्ट बनाना
MongoCollection<Document> collection = database.getCollection("students");
Document document1 = new Document("name", "Ram").append("age", 26).append("city", "Hyderabad");
Document document2 = new Document("name", "Robert").append("age", 27).append("city", "Vishakhapatnam");
Document document3 = new Document("name", "Rhim").append("age", 30).append("city", "Delhi");
// बनाए गए डॉक्यूमेंट्स इन्सर्ट करना
List<Document> list = new ArrayList<Document>();
list.add(document1);
list.add(document2);
list.add(document3);
collection.insertMany(list);
System.out.println("डॉक्यूमेंट्स इन्सर्ट हो गए");
collection = database.getCollection("students");
// डॉक्यूमेंट्स प्राप्त करना
FindIterable<Document> iterDoc = collection.find().projection(Projections.include("name", "age"));
Iterator it = iterDoc.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
आउटपुट
डॉक्यूमेंट्स इन्सर्ट हो गए
Document{{_id=5e8966533f68506911c946dc, name=Ram, age=26}}
Document{{_id=5e8966533f68506911c946dd, name=Robert, age=27}}
Document{{_id=5e8966533f68506911c946de, name=Rhim, age=30}}