Bài 14: MongoDB - Projection - MongoDB

Đăng bởi: Admin | Lượt xem: 889 | Chuyên mục: SQL


Mặc định, khi truy vấn trong MongoDB (find()) kết quả trả về sẽ gồm tất cả các field trong document. Để giới hạn số lượng dữ liệu mà MongoDB gửi tới ứng dụng, bạn có thể sử dụng projection để chỉ rõ những field nào được trả về, những field nào không được trả về khi truy vấn.
Cú pháp:
db.COLLECTION_NAME.find({condition},{field1:1,field2:0,...})
Trong đó:
  • {condition}: là điều kiện tìm kiếm, nếu bạn để {} thì nó sẽ tìm tất cả document.
  • field1:1: biểu thị field1 sẽ được hiển thị trong kết quả trả về. (Mặc định trường _id luôn trược trả về)
  • field2:0: biểu thị field2 sẽ không được hiển thị trong kết quả trả về.
Ví dụ trong collection player mình có 5 bản ghi như sau:
{'_id':'1', 'name':'neymar', 'country':'brazil', 'age':25},
{'_id':'2', 'name':'hazard', 'country':'belgium', 'age':25},
{'_id':'3', 'name':'mbappe', 'country':'france', 'age':18},
{'_id':'4', 'name':'modric', 'country':'croatia', 'age':30},
{'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':33},
Ví dụ 1: hiển thị name của tất cả các document thì câu lệnh sẽ là:
db.player.find({},{'name':1})
Câu SQL tương ứng:
SELECT _id, name FROM player
Kết quả:
(Mặc định trường _id sẽ được hiển thị, nếu không muốn hiển thị thì bạn dùng _id:0)
Ví dụ 2:
Hiển thị name và ẩn _id của các player có age = 25
db.player.find({'age':25},{'name':1, '_id':0})
Câu SQL tương ứng:
SELECT name FROM player WHERE age = 25
Kết quả:
Bài tiếp theo: MongoDB - Giới hạn bản ghi >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!