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

Thực hiện so sánh chuỗi trong MongoDB?

Để thực hiện so sánh chuỗi trong MongoDB, hãy sử dụng $ strcasecmp. Nó thực hiện so sánh không phân biệt chữ hoa chữ thường của hai chuỗi. Nó trả về -

  • 1 nếu chuỗi đầu tiên "lớn hơn" chuỗi thứ hai.

  • 0 nếu hai chuỗi bằng nhau.

  • -1 nếu chuỗi đầu tiên "nhỏ hơn" chuỗi thứ hai.

Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo490.insertOne({"Name1":"John","Name2":"john"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8496ccb0f3fa88e22790bb")
}
> db.demo490.insertOne({"Name1":"David","Name2":"Bob"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8496d9b0f3fa88e22790bc")
}
> db.demo490.insertOne({"Name1":"Carol","Name2":"Carol"});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e8496e5b0f3fa88e22790bd")
}

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

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

{ "_id" : ObjectId("5e8496ccb0f3fa88e22790bb"), "Name1" : "John", "Name2" : "john" }
{ "_id" : ObjectId("5e8496d9b0f3fa88e22790bc"), "Name1" : "David", "Name2" : "Bob" }
{ "_id" : ObjectId("5e8496e5b0f3fa88e22790bd"), "Name1" : "Carol", "Name2" : "Carol" }

Sau đây là truy vấn để triển khai so sánh chuỗi trong MongoDB -

> db.demo490.aggregate(
... [
...    {
...       $project:
...       {
...          Name1: 1,
...          Name2: 1,
...          Result: { $strcasecmp: [ "$Name1", "$Name2" ] }
...       }
...    }
... ]
... )

Điều này sẽ dẫn đến kết quả sau -

{ "_id" : ObjectId("5e8496ccb0f3fa88e22790bb"), "Name1" : "John", "Name2" : "john", "Result"
: 0 }
{ "_id" : ObjectId("5e8496d9b0f3fa88e22790bc"), "Name1" : "David", "Name2" : "Bob",
"Result" : 1 }
{ "_id" : ObjectId("5e8496e5b0f3fa88e22790bd"), "Name1" : "Carol", "Name2" : "Carol",
"Result" : 0 }