2011-08-26 22 views
18

Từ MongoDB của tôi, tôi muốn tương đương choCơ sở dữ liệu MongoDB, tương đương cho CHỌN column1, column2 TỪ tbl

SELECT column1, column2 
    FROM tbl 

Với mã này tôi nhận được tất cả các 'hàng' mà còn tất cả các 'cột'

DBCollection collection = database.getCollection("names"); 
    DBCursor cursor = collection.find(); 

tôi ví dụ muốn tất cả các 'hàng' nhưng chỉ các 'cột': id, tên, tuổi

Tôi sẽ làm như thế nào?

Cảm ơn bạn đã trợ giúp !!

Trả lời

37

db.collection.find ({}, {_id: 1, và tên: 1, tuổi: 1})

Đối số đầu tiên để tìm (vị) là tiêu chí lựa chọn của bạn, ví dụ

db.collection.find ({tuổi: {$ gte: 21}})

Thứ hai hạn chế các lĩnh vực bạn lấy, vì vậy đối với những cái tên trên tất cả mọi người 21 tuổi trở lên:

db.collection.find ({tuổi: {$ gte: 21}}, {name: 1})

Bộ chọn lĩnh vực luôn kéo lại _id trừ khi bạn tắt nó đi:

db.collection.find ({}, {_id: 0})

Tuy nhiên, Mông Cổ sẽ không kiểm tra sự tồn tại thực địa theo mặc định. Nếu bạn muốn chọn lĩnh vực nào đó, và phù hợp với kết quả chỉ có những lĩnh vực, bạn sẽ muốn sử dụng:

db.collection.find ({tuổi: {$ tồn tại: true}})

Trang web MongoDB có mô tả chi tiết hơn về hàm .find()!

1

Cảm ơn !, Tôi đã khắc phục bằng mã bên dưới.

BasicDBObject select = new BasicDBObject(); 
    select.put("id", 1); 
    select.put("name", 1); 
    select.put("age", 1); 
    collection.find(new BasicDBObject(), select); 

Mã trên cung cấp cho tôi tất cả các bản ghi, chỉ với các tên cột như trên.

Các vấn đề liên quan