Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm document theo tên thuộc tính (property name) trong MongoDB?

Để tìm document có chứa một trường (property) cụ thể (bất kể giá trị), bạn sử dụng toán tử $exists. Để tìm document mà trường đó không null, kết hợp $ne: null.

Tạo dữ liệu mẫu

Có document với FirstName: null và document không có trường FirstName (không có trong ví dụ này, nhưng $exists:false sẽ khớp).


Hiển thị tất cả:

{ "_id" : ObjectId("5cbaf7af7219729fde21ddb5"), "FirstName" : "Larry", "Age" : 23 }
{ "_id" : ObjectId("5cbaf7b97219729fde21ddb6"), "FirstName" : null, "Age" : 21 }
{ "_id" : ObjectId("5cbaf7c57219729fde21ddb7"), "FirstName" : "John", "Age" : 22 }
{ "_id" : ObjectId("5cbaf7d07219729fde21ddb8"), "FirstName" : null, "Age" : 25 }
{ "_id" : ObjectId("5cbaf7df7219729fde21ddb9"), "FirstName" : "David", "Age" : 20 }

Tìm document có FirstName KHÁC null

{ "_id" : ObjectId("5cbaf7af7219729fde21ddb5"), "FirstName" : "Larry", "Age" : 23 }
{ "_id" : ObjectId("5cbaf7c57219729fde21ddb7"), "FirstName" : "John", "Age" : 22 }
{ "_id" : ObjectId("5cbaf7df7219729fde21ddb9"), "FirstName" : "David", "Age" : 20 }

So sánh $exists vs $ne: null

Truy vấnKhớp document có trườngKhớp document trường = nullKhớp document thiếu trường
{field: {$exists: true}}✓✓✗
{field: {$ne: null}}✓✗✓
{field: {$exists: true, $ne: null}}✓✗✗

Trong ví dụ trên, dùng $ne: null vừa loại bỏ null, vừa giữ document có trường (tất cả document đều có trường FirstName). Nếu có document thiếu hẳn trường, $ne: null sẽ khớp document đó (vì missing != null).