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

Có thể sử dụng giá trị trường MongoDB làm mẫu trong $ regex không?

Có, bạn có thể sử dụng $ indexOfCP để sử dụng giá trị được phân loại làm mẫu. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> db.demo88.insertOne (... {... "Tên":"Chris", ... "PassoutYear":"2020", ... "websiteName":"chris.shop.com/ Carol-2020 - "...} ...); {" Recognition ":true," insertId ":ObjectId (" 5e2c14c471bf0181ecc422b1 ")}> db.demo88.insertOne (... {..." Name ":"David", ... "PassoutYear":"2010", ... "websiteName":"david.bigshop.com/David-2010 -" ...} ...); {"Recognition":true, "insertId":ObjectId ("5e2c14c571bf0181ecc422b2")} 

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

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

 {"_id":ObjectId ("5e2c14c471bf0181ecc422b1"), "Tên":"Chris", "PassoutYear":"2020", "websiteName":"chris.shop.com/Carol-2020-"} {" _id ":ObjectId (" 5e2c14c571bf0181ecc422b2 ")," Tên ":" David "," PassoutYear ":" 2010 "," websiteName ":" david.bigshop.com/David-2010- "} 

Sau đây là truy vấn sử dụng giá trị trường làm mẫu trong $ regex -

> db.demo88.aggregate ([{"$ match":{"$ expr":{"$ ne":[{"$ indexOfCP":["$ websiteName", "$ Name"]}, - 1]}}}]) 

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

 {"_id":ObjectId ("5e2c14c571bf0181ecc422b2"), "Tên":"David", "PassoutYear":"2010", "websiteName":"david.bigshop.com/David-2010-"}