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