Computer >> Máy Tính >  >> Lập trình >> MongoDB

Regex bỏ qua một nhân vật cụ thể trong MongoDB?

Bạn có thể sử dụng biểu thức chính quy cùng với toán tử $ not để bỏ qua một ký tự cụ thể và hiển thị phần còn lại của chúng. Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.regexDemo.insertOne({"CustomerId":"Customer#1234","CustomerName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc7428f8f9e6ff3eb0ce436")
}
> db.regexDemo.insertOne({"CustomerId":"Customer5678","CustomerName":"Robert"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc7429e8f9e6ff3eb0ce437")
}
> db.regexDemo.insertOne({"CustomerId":"Customer#777","CustomerName":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc742ae8f9e6ff3eb0ce438")
}
> db.regexDemo.insertOne({"CustomerId":"Customer777","CustomerName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc742bc8f9e6ff3eb0ce439")
}

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.regexDemo.find().pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5cc7428f8f9e6ff3eb0ce436"),
   "CustomerId" : "Customer#1234",
   "CustomerName" : "Chris"
}
{
   "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"),
   "CustomerId" : "Customer5678",
   "CustomerName" : "Robert"
}
{
   "_id" : ObjectId("5cc742ae8f9e6ff3eb0ce438"),
   "CustomerId" : "Customer#777",
   "CustomerName" : "Carol"
}
{
   "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"),
   "CustomerId" : "Customer777",
   "CustomerName" : "David"
}

Trường hợp 1 - Đây là truy vấn để tránh sử dụng một ký tự cụ thể trong MongoDB. Ký tự là # -

> db.regexDemo.find({CustomerId: /^[^#]*$/}).pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"),
   "CustomerId" : "Customer5678",
   "CustomerName" : "Robert"
}
{
   "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"),
   "CustomerId" : "Customer777",
   "CustomerName" : "David"
}

Trường hợp 2 - Đây là một truy vấn khác để tránh sử dụng một ký tự cụ thể trong MongoDB. Ký tự là # -

> db.regexDemo.find({CustomerId: {$not: /#/}}).pretty();

Điều này sẽ tạo ra kết quả sau -

{
   "_id" : ObjectId("5cc7429e8f9e6ff3eb0ce437"),
   "CustomerId" : "Customer5678",
   "CustomerName" : "Robert"
}
{
   "_id" : ObjectId("5cc742bc8f9e6ff3eb0ce439"),
   "CustomerId" : "Customer777",
   "CustomerName" : "David"
}