- MongoDB là gì? Các khái niệm trong MongoDB
- Hướng dẫn cài đặt, cấu hình MongoDB trên Windows 10
- Cài đặt và sử dụng Robo 3T (RoboMongo) trên Windows
- Hướng dẫn cài đặt MongoDB trên Linux (Ubuntu 16.04)
- Hướng dẫn MongoDB – Tạo database trong MongoDB
- Hướng dẫn MongoDB – Xóa, DROP database trong MongoDB
- Tạo bảng, collections trong MongoDB (Tạo bằng dòng lệnh, Robo3t)
- Xóa bảng, collections trong MongoDB (Xóa bằng lệnh/ Robo3T)
- Insert document, bản ghi trong MongoDB (Insert bằng lệnh, Robo3T)
- Truy vấn dữ liệu/document, find(), Select, Where trong MongoDB
- Xóa document, row trong MongoDB (bằng dòng lệnh, Robo3T)
- Update document, dữ liệu trong MongoDB
- Projection trong MongoDB (SELECT field/column trong MongoDB)
- Sắp xếp trong MongoDB(orderBy, sorting() trong MongoDB)
- Ưu nhược điểm của MongoDB, khi nào nên dùng MongoDB
- Xóa cột, field, trường của collections trong MongoDB ($unset)
- Kiểm tra null, check tồn tại trong MongoDB với $exists
- Đổi tên field trong MongoDB với $rename
- Tạo user/roles, phân quyền người dùng trên MongoDB
- Các loại roles, vai trò, quyền trong MongoDB.
- Đăng nhập mongodb với username và password (database mongo)
- Tạo Replica Set trong MongoDB, Ví dụ Replica Set MongoDB
- Replication, Replica Set trong MongoDB là gì?
- Phân trang trong MongoDB (skip(), limit() paging trong MongoDB)
Kiểm tra null, check tồn tại trong MongoDB với $exists.
Trong MongoDB, dữ liệu lưu ở collection không có cấu trúc dữ liệu cố định. Tức là bản ghi (document) này có field này nhưng bản ghi khác lại không có field đó.
Do đó khi truy vấn, tìm kiếm theo field nào đó, ta cần phân biệt field đó null hay là không tồn tại.
Kiểm tra null trong MongoDB
Ví dụ mình insert 5 bản ghi (document) sau vào collection player
db.player.insert([ {'_id':'1', 'name':'neymar', 'country':null, 'age':'25'}, {'_id':'2', 'name':'hazard', 'country':null, 'age':'25'}, {'_id':'3', 'name':'mbappe', 'age':'18'}, {'_id':'4', 'name':'modric', 'country':'croatia', 'age':'30'}, {'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':'33'}])
Trong đó bản ghi 1 và 2 có field country
là null, bản ghi thứ 3 không tồn tại field country
Bây giờ mình sẽ thực hiện lấy ra các bản ghi (document) có country
khác null:
db.getCollection('player').find({country: {$ne: null}})
Rõ ràng field không tồn tại cũng được tính như là field có giá trị bằng null.
Tương tự ta lấy các bản ghi có country bằng null thì kết quả như sau:
Kiểm tra field tồn tại trong MongoDB ($exists)
Field/trường không tồn tại tương đương với giá trị bằng null, tuy nhiên nếu muốn kiểm tra chính xác field đó có tồn tại hay không thì ta phải dùng tới $exists
Ví dụ, tìm các document có chứa trường country
db.getCollection('player').find({country: {$exists: true}})
Kết quả:
Chỉ duy nhất bản ghi có _id = 3 là không thỏa mãn.
Okay, Done!
References:
https://docs.mongodb.com/manual/reference/operator/query/exists/