Trong khi truy xuất dữ liệu từ bộ sưu tập MongoDb, bạn chỉ có thể chọn dữ liệu cần thiết bằng cách sử dụng các phép chiếu. Trong Java, bạn có thể chiếu dữ liệu cần thiết trong khi đọc tài liệu từ bộ sưu tập bằng cách sử dụng chiếu () phương pháp. Gọi phương thức này trên kết quả của find (), bỏ qua tên của các tên được khai báo bắt buộc là -
projection(Projections.include("name", "age"));
Ví dụ
Các ví dụ Java sau đây đọc tài liệu từ một bộ sưu tập, sử dụng phép chiếu, chúng tôi chỉ hiển thị các giá trị của trường tên và tuổi.
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[] ) { //Creating a MongoDB client MongoClient mongo = new MongoClient( "localhost" , 27017 ); //Connecting to the database MongoDatabase database = mongo.getDatabase("myDatabase"); //Creating a collection object 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"); //Inserting the created documents List<Document> list = new ArrayList<Document>(); list.add(document1); list.add(document2); list.add(document3); collection.insertMany(list); System.out.println("Documents Inserted"); collection = database.getCollection("students"); //Retrieving the documents FindIterable<Document> iterDoc = collection.find().projection(Projections.include("name", "age")); Iterator it = iterDoc.iterator(); while (it.hasNext()) { System.out.println(it.next()); } } }
Đầu ra
Documents Inserted Document{{_id=5e8966533f68506911c946dc, name=Ram, age=26}} Document{{_id=5e8966533f68506911c946dd, name=Robert, age=27}} Document{{_id=5e8966533f68506911c946de, name=Rhim, age=30}}