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

Truy vấn MongoDB kiểu "like" trên tên và email bắt đầu bằng chữ cái cụ thể

Để triển khai tính năng kiểu "like" trong MongoDB, hãy sử dụng biểu thức chính quy /.../ với chữ cái cần tìm ở giữa. Ví dụ: /J/ tìm chữ J bất kỳ vị trí nào.

Tạo collection:

> db.demo554.insertOne({"UserName":"John","UserMailId":"John@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1cfed1d72c4545cb8679") }
> db.demo554.insertOne({"UserName":"Chris","UserMailId":"Chris@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1d0cd1d72c4545cb867a") }
> db.demo554.insertOne({"UserName":"Jace","UserMailId":"Jace@gmail.com"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8f1d1cd1d72c4545cb867b") }

Hiển thị tất cả:

> db.demo554.find();

Kết quả:

{ "_id" : ObjectId("5e8f1cfed1d72c4545cb8679"), "UserName" : "John", "UserMailId" : "John@gmail.com" }
{ "_id" : ObjectId("5e8f1d0cd1d72c4545cb867a"), "UserName" : "Chris", "UserMailId" : "Chris@gmail.com" }
{ "_id" : ObjectId("5e8f1d1cd1d72c4545cb867b"), "UserName" : "Jace", "UserMailId" : "Jace@gmail.com" }

Truy vấn tìm UserName HOẶC UserMailId chứa chữ "J" (không phân biệt hoa/thường với flag i):

> db.demo554.find({
...     "$or": [
...         { "UserName": /J/i },
...         { "UserMailId": /J/i }
...     ]
... });

Kết quả (John và Jace):

{ "_id" : ObjectId("5e8f1cfed1d72c4545cb8679"), "UserName" : "John", "UserMailId" : "John@gmail.com" }
{ "_id" : ObjectId("5e8f1d1cd1d72c4545cb867b"), "UserName" : "Jace", "UserMailId" : "Jace@gmail.com" }