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

Bỏ qua giá trị NULL và UNDEFINED trong truy vấn MongoDB

Để loại trừ các tài liệu có trường mang giá trị null hoặc undefined, sử dụng toán tử $ne (not equal).

Tạo collection có giá trị null và undefined:

> db.demo35.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e42cfb11e5c34d898d0") }
> db.demo35.insertOne({"Name":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e46cfb11e5c34d898d1") }
> db.demo35.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e4bcfb11e5c34d898d2") }
> db.demo35.insertOne({"Name":undefined});
{ "acknowledged" : true, "insertedId" : ObjectId("5e175e54cfb11e5c34d898d3") }

Xem dữ liệu (có null và undefined):

> db.demo35.find();
{ "_id" : ObjectId("5e175e42cfb11e5c34d898d0"), "Name" : "Chris" }
{ "_id" : ObjectId("5e175e46cfb11e5c34d898d1"), "Name" : null }
{ "_id" : ObjectId("5e175e4bcfb11e5c34d898d2"), "Name" : "Bob" }
{ "_id" : ObjectId("5e175e54cfb11e5c34d898d3"), "Name" : undefined }

Truy vấn bỏ qua NULL:

> db.demo35.find({"Name": {$ne: null}});

Kết quả (chỉ còn Chris và Bob):

{ "_id" : ObjectId("5e175e42cfb11e5c34d898d0"), "Name" : "Chris" }
{ "_id" : ObjectId("5e175e4bcfb11e5c34d898d2"), "Name" : "Bob" }

Lưu ý quan trọng: Trong MongoDB shell, undefined được lưu trữ như null. Truy vấn {$ne: null} sẽ loại bỏ cả null và undefined. Để kiểm tra riêng, dùng {$exists: true, $ne: null}.