Tôi sẽ giới thiệu về MongoDB cho java. Có một số mã ví dụ để lấy tất cả các tài liệu trong một bộ sưu tập. Các mã hoạt động, nhưng tôi tìm thấy nó một chút ... clunky vì thiếu một từ tốt hơn. Tôi tự hỏi nếu có một lý do cụ thể mà làm cho nó cần thiết. Ví dụ đưa ra là:Cú pháp Java với MongoDB
FindIterable<Document> iterable = db.getCollection("restaurants").find();
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
Có một số lý do một trường hợp Block
phải được tạo ra trong mỗi lần lặp của forEach
trong ví dụ trên? Tại sao không một chút gì đó đơn giản hơn như:
FindIterable<Document> iterable = db.getCollection("restaurants").find();
for (Document document : iterable) {
System.out.println(document);
}
kiểm tra kiểm tra bài viết này, nó giải thích làm thế nào bạn có thể có được giải pháp mà bạn muốn, https: // nhóm .google.com/forum/#! topic/mongodb-user/pcVX84PPwM0 – faljbour
@faljbour - Điều này không trả lời được câu hỏi của tôi. Chuỗi đó là về thay đổi API từ phiên bản Mongo này sang phiên bản khác. Cụ thể, nó không thảo luận về sự khởi tạo của cá thể 'Block' trong vòng lặp forEach. – Hal50000
@ Hal50000 Tôi nghĩ rằng chỉ có một đối tượng của một lớp vô danh thực hiện khối được tạo ra làm tham số cho phương thức iterable.forEach(). –
Hongfei