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 -

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

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?


Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

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,

  • Bắt đầu
  • Trường không được đặt trong MongoDB
  • Trường này là null trong MongoDB
  • Trường không có giá trị hoặc không được đặt trong MongoDB

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 đầu

Tô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

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

Trường không được đặt trong MongoDB

Truy 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

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

Sử dụng la bàn

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

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 MongoDB

Truy 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

________số 8

Kết quả

Sử dụng vỏ Mongo

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?
mongodb truy vấn trường là null

Sử dụng la bàn

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?
truy vấn mongodb trường là null la bàn

Trường không có giá trị hoặc không được đặt trong MongoDB

Bâ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

  • phù hợp với giá trị "Tác giả" là NULL
  • và phù hợp với trường "Tác giả" không tồn tại

Kết quả

vỏ mongo

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

giao diện người dùng la bàn

Làm cách nào để kiểm tra trường có giá trị rỗng hay không trong MongoDB?

Đó 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.