Hướng dẫn check null mongodb - kiểm tra null mongodb

This entry is part 17 of 24 in the series MongoDB

  • 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.

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'}])

Hướng dẫn check null mongodb - kiểm tra null mongodb

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

Hướng dẫn check null mongodb - kiểm tra null mongodb

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:

Hướng dẫn check null mongodb - kiểm tra null mongodb

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ả:

Hướng dẫn check null mongodb - kiểm tra null mongodb

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/

Docs Home → MongoDB ManualMongoDB Manual


➤ Use the Select your language drop-down menu in the upper-right to set the language of the following examples.Select your language drop-down menu in the upper-right to set the language of the following examples.


Different query operators in MongoDB treat null values differently.

The query returns both documents in the collection.

The query returns only the document where the

db.getCollection('player').find({country: {$ne: null}})
0 field has a value of null.

Các truy vấn ví dụ sau đây cho các tài liệu không chứa một trường.[1]

Truy vấn chỉ trả về tài liệu không chứa trường

db.getCollection('player').find({country: {$ne: null}})
0.

Mẹo

Xem thêm:

Tài liệu tham khảo cho các toán tử

db.getCollection('player').find({country: {$ne: null}})
3 và $exists.