Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?
Bạn có thể sử dụng toán tử $type để kiểm tra xem một trường có chứa giá trị null hay không. Trước tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu. Chúng tôi cũng đã chèn một giá trị rỗng vào một trường - Show > db.nullDemo.insertOne({"FirstName":"Chris"}); { "acknowledged" : true, "insertedId" : ObjectId("5cc68a1eac184d684e3fa270") } > db.nullDemo.insertOne({"FirstName":null}); { "acknowledged" : true, "insertedId" : ObjectId("5cc68a25ac184d684e3fa271") } > db.nullDemo.insertOne({"FirstName":"Robert"}); { "acknowledged" : true, "insertedId" : ObjectId("5cc68a2cac184d684e3fa272") } Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find() - > db.nullDemo.find().pretty(); Điều này sẽ tạo ra đầu ra sau. Một trong các trường là null - { "_id" : ObjectId("5cc68a1eac184d684e3fa270"), "FirstName" : "Chris" } { "_id" : ObjectId("5cc68a25ac184d684e3fa271"), "FirstName" : null } { "_id" : ObjectId("5cc68a2cac184d684e3fa272"), "FirstName" : "Robert" } Đây là truy vấn để kiểm tra xem một trường có chứa giá trị null hay không. Trường “FirstName” được chọn – > db.nullDemo.find( { FirstName: { $type: 10 } } ); Điều này sẽ tạo ra đầu ra sau - { "_id" : ObjectId("5cc68a25ac184d684e3fa271"), "FirstName" : null } Nếu bạn định sử dụng một chỉ mục thưa thớt, hãy đảm bảo rằng bạn đã đọc tài liệu cẩn thận như trong MongoDB 2. 6, một chỉ mục thưa thớt sẽ không được chọn khi nó có thể trả về kết quả không đầy đủ. Ví dụ, > db. kiểm tra. tìm một". vô giá trị }) sẽ trả về 1 kết quả nếu nó sử dụng chỉ mục thưa thớt trên a vì sẽ không có mục nhập chỉ mục cho tài liệu thiếu trường a. MongoDB >= 2. 6 sẽ không sử dụng chỉ mục thưa thớt trên a trừ khi chỉ mục thưa thớt được gợi ý rõ ràng > db. kiểm tra. ensureIndex({ "a". 1 }, { "thưa thớt". thật }) > db. kiểm tra. đếm ({ "a". null }) // không sử dụng chỉ mục > db. kiểm tra. đếm ({ "a". vô giá trị }). gợi ý ({ "a". 1 }) // buộc phải sử dụng chỉ mục Hy vọng rằng điều này hữu ích trong việc hướng dẫn bạn những việc cần làm với các trường bị thiếu/null. Vui lòng theo dõi các câu hỏi tiếp theo Hôm nay trong bài viết chúng ta sẽ tìm hiểu cách MongoDB Query cho trường là null hay không được đặt i. e không tồn tại trong cơ sở dữ liệu. Chúng tôi sẽ xác minh các truy vấn bằng MongoShell hoặc các công cụ UI như Compass UI Hôm nay trong bài viết này, chúng tôi sẽ đề cập đến các khía cạnh dưới đây,
Chúng tôi cũng sẽ chạy truy vấn bằng cách sử dụng. NET C# trình điều khiển mongo. Nếu muốn biết cách chạy truy vấn bằng cách sử dụng. NET C# mongo, vui lòng kiểm tra bài viết này, Bắt đầuTôi có một tài liệu MongoDB mẫu như bên dưới trong một trong các bộ sưu tập. Ở đây chúng ta sẽ cố gắng tìm kiếm tất cả các tài liệu có trường Tác giả là NULL hoặc không được đặt trong tài liệu Trường không được đặt trong MongoDBTruy vấn bên dưới khớp với các tài liệu không chứa trường Tác giả Cho đến nay trên các tài liệu Mongo, chúng tôi sẽ chỉ nhận được kết quả cho “_id”. ”5db5a4476997188b2722c820“ Mẫu truy vấn { Field Name: {$exists:false} } Truy vấn mẫu { Author: {$exists:false} } Kết quả Sử dụng vỏ Mongo Sử dụng la bàn Ghi chú Nếu $ > db.nullDemo.find().pretty();1 là sai, thì truy vấn chỉ trả về các tài liệu không chứa trường này Trong câu truy vấn trên, bây giờ chúng ta sẽ nhận được kết quả chỉ là 1 tài liệu > db.nullDemo.find().pretty();2 khi được đặt là true, giá trị này sẽ khớp với tài liệu chứa trường này, kể cả tài liệu có giá trị trường là > db.nullDemo.find().pretty();3 Trường này là null trong MongoDBTruy vấn bên dưới khớp với các tài liệu chứa trường Tác giả được đặt thành null Ở đây, chúng tôi giả định rằng các trường đã tồn tại và không muốn xem xét các bản ghi nơi các bản ghi không tồn tại trường Cho đến nay trên các tài liệu Mongo, chúng tôi sẽ chỉ nhận được kết quả cho id = 5ff50353a29ce9564c2724e2 Mẫu truy vấn {$and:[{Field Name:{$type:'null'}}]} Truy vấn mẫu Kết quả Sử dụng vỏ Mongo mongodb truy vấn trường là nullSử dụng la bàn truy vấn mongodb trường là null la bànTrường không có giá trị hoặc không được đặt trong MongoDBBây giờ hãy xem liệu bạn có yêu cầu tìm các bản ghi mà Trường không được đặt hoặc không tồn tại trong MongoDB Mẫu truy vấn {$and:[{Field Name:null }]} Ví dụ truy vấn > db.nullDemo.find().pretty();0 Truy vấn trên không hoạt động đối với 2 điều kiện bên dưới
Kết quả vỏ mongo giao diện người dùng la bàn Đó là tất cả, Vì vậy, hôm nay chúng ta đã học truy vấn mongo đơn giản để xác định các bản ghi có trường rỗng hoặc không được đặt. Khá dễ dàng để chuẩn bị truy vấn cho những nhu cầu như vậy Có kiểu dữ liệu null trong MongoDB không?Object − Kiểu dữ liệu này được sử dụng cho các tài liệu nhúng. Null − Loại này được sử dụng để lưu trữ giá trị Null .
Làm cách nào để bỏ qua các giá trị null trong MongoDB?Giải pháp 1. Trong trường hợp bảo toàn tất cả các giá trị null[] hoặc trường null trong chính mảng đó là không cần thiết. Lọc ra các phần tử không null bằng cách sử dụng $filter , mảng (tất cả các phần tử null) sẽ trống, hãy lọc phần tử đó ra khỏi tài liệu bằng cách sử dụng $match rồi $sort .
Làm cách nào để sử dụng $EQ trong MongoDB?Toán tử đẳng thức ($eq ) được sử dụng để so khớp các tài liệu trong đó giá trị của trường bằng với giá trị đã chỉ định . Nói cách khác, toán tử $eq được sử dụng để xác định điều kiện bình đẳng. Điểm quan trọng. Nếu giá trị đã cho là một tài liệu, thì thứ tự của các trường trong tài liệu là quan trọng. |