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

Làm cách nào để bạn so sánh hai trường trong MongoDB khi thực hiện thao tác trên một trong số chúng?

Để so sánh hai trường, hãy sử dụng $ where trong MongoDB. 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.demo7.insertOne({"FirstName1":"JOHN","FirstName2":"John"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0ccd1a25ddae1f53b6222f")
}
> db.demo7.insertOne({"FirstName1":"Carol","FirstName2":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0ccd2725ddae1f53b62230")
}
> db.demo7.insertOne({"FirstName1":"bob","FirstName2":"BOB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e0ccd3225ddae1f53b62231")
}

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

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

{ "_id" : ObjectId("5e0ccd1a25ddae1f53b6222f"), "FirstName1" : "JOHN", "FirstName2" : "John" }
{ "_id" : ObjectId("5e0ccd2725ddae1f53b62230"), "FirstName1" : "Carol", "FirstName2" : "Mike" }
{ "_id" : ObjectId("5e0ccd3225ddae1f53b62231"), "FirstName1" : "bob", "FirstName2" : "BOB" }

Đây là truy vấn để so sánh hai trường trong khi thực hiện thao tác trên một trong số chúng -

> db.demo7.find({$where: "this.FirstName1.toLowerCase() == this.FirstName2.toLowerCase()"});

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

{ "_id" : ObjectId("5e0ccd1a25ddae1f53b6222f"), "FirstName1" : "JOHN", "FirstName2" : "John" }
{ "_id" : ObjectId("5e0ccd3225ddae1f53b62231"), "FirstName1" : "bob", "FirstName2" : "BOB" }