Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Giải thích Projection (chiếu) trong Java MongoDB

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}}