如何透過對其中一個欄位執行操作來比較 MongoDB 中的兩個欄位?


如果不使用 $where 子句,比較兩個欄位時就會產生錯誤,讓我們先使用文件建立一個集合:

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

以下是使用 find() 方法從集合中顯示所有文件的查詢:

> db.demo7.find();

這將產生以下輸出:

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

以下是比較兩個欄位並在其中一個欄位上執行操作的查詢:

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

這將產生以下輸出:

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

更新於:01-Apr-2020

261 檢視

開啟你的職業生涯生涯

完成課程並獲得認證

開始
廣告