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

Làm cách nào để truy vấn MongoDB với “like”?

Bạn có thể dễ dàng truy vấn MongoDB với “like”:

db.yourCollectionName.find({"yourFieldName" : /.*yourMatchingValue.*/}).pretty();

Để hiểu cú pháp trên, chúng ta hãy tạo một bộ sưu tập với một số tài liệu. Ở đây, chúng tôi có một bộ sưu tập với tên ‘nhân viên’. Truy vấn như sau:

> db.employee.insert({"EmployeeName":"John","EmployeeSalary":450000});
WriteResult({ "nInserted" : 1 })
> db.employee.insert({"EmployeeName":"Carol","EmployeeSalary":150000});
WriteResult({ "nInserted" : 1 })
> db.employee.insert({"EmployeeName":"James","EmployeeSalary":550000});
WriteResult({ "nInserted" : 1 })
> db.employee.insert({"EmployeeName":"Jace","EmployeeSalary":670000});
WriteResult({ "nInserted" : 1 })
> db.employee.insert({"EmployeeName":"Larry","EmployeeSalary":1000000});
WriteResult({ "nInserted" : 1 })

Bây giờ bạn có thể hiển thị tất cả các tài liệu từ một bộ sưu tập bằng cách sử dụng phương thức find (). Truy vấn là asfollows:

> db.employee.find().pretty();

Sau đây là kết quả:

{
   "_id" : ObjectId("5c6c0b2e68174aae23f5ef59"),
   "EmployeeName" : "John",
   "EmployeeSalary" : 450000
}
{
   "_id" : ObjectId("5c6c0b3b68174aae23f5ef5a"),
   "EmployeeName" : "Carol",
   "EmployeeSalary" : 150000
}
{
   "_id" : ObjectId("5c6c0b4768174aae23f5ef5b"),
   "EmployeeName" : "James",
   "EmployeeSalary" : 550000
}
{
   "_id" : ObjectId("5c6c0b8f68174aae23f5ef5c"),
   "EmployeeName" : "Jace",
   "EmployeeSalary" : 670000
}
{
   "_id" : ObjectId("5c6c0b9e68174aae23f5ef5d"),
   "EmployeeName" : "Larry",
   "EmployeeSalary" : 1000000
}

Đây là truy vấn trong MongoDB với toán tử "like":

> db.employee.find({"EmployeeName":/.*J.*/}).pretty();

Sau đây là kết quả:

{
   "_id" : ObjectId("5c6c0b2e68174aae23f5ef59"),
   "EmployeeName" : "John",
   "EmployeeSalary" : 450000
}
{
   "_id" : ObjectId("5c6c0b4768174aae23f5ef5b"),
   "EmployeeName" : "James",
   "EmployeeSalary" : 550000
}
{
   "_id" : ObjectId("5c6c0b8f68174aae23f5ef5c"),
   "EmployeeName" : "Jace",
   "EmployeeSalary" : 670000
}