Khi truy xuất dữ liệu, bạn có thể chỉ chọn các trường cần thiết bằng projection. Trong Java, dùng phương thức projection() trên kết quả của find(), truyền tên các trường cần lấy bằng Projections.include().
Ví dụ Java
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[]) {
MongoClient mongo = new MongoClient("localhost", 27017);
MongoDatabase database = mongo.getDatabase("myDatabase");
MongoCollection<Document> collection = database.getCollection("students");
// Chèn 3 document
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("Documents Inserted");
// Chỉ lấy trường name và age
FindIterable<Document> iterDoc = collection.find().projection(Projections.include("name", "age"));
Iterator it = iterDoc.iterator();
while (it.hasNext()) System.out.println(it.next());
}
}
Kết quả
Documents Inserted
Document{{_id=5e8966533f68506911c946dc, name=Ram, age=26}}
Document{{_id=5e8966533f68506911c946dd, name=Robert, age=27}}
Document{{_id=5e8966533f68506911c946de, name=Rhim, age=30}}