Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Kiểm tra bằng nhau giữa trường gốc và trường trong embedded document MongoDB

Dùng $where với JavaScript để so sánh trường của document gốc với trường trong subdocument embedded.

Tạo collection demo292:

> db.demo292.insertOne({FirstName:"Chris",LastName:"Brown",Friend:{FirstName:"David",LastName:"Miller"}});
> db.demo292.insertOne({FirstName:"John",LastName:"Doe",Friend:{FirstName:"Mike",LastName:"Doe"}});

Tìm document có LastName = Friend.LastName:

> db.demo292.find({$where:'this.Friend.LastName === this.LastName'});

Kết quả: document 2 (Doe = Doe):

{
   "_id" : ObjectId("5e4c10dc5d93261e4bc9ea31"),
   "FirstName" : "John",
   "LastName" : "Doe",
   "Friend" : {"FirstName":"Mike","LastName":"Doe"}
}

Cảnh báo: $where chạy JavaScript engine, chậm và không dùng index. Chỉ dùng khi không thể biểu diễn bằng query operator chuẩn.