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

Thực hiện truy vấn regex với PyMongo?

PyMongo là một bản phân phối Python chứa các công cụ để làm việc với MongoDB. Để thực hiện các truy vấn regex với PyMongo, cú pháp như sau -

db.yourCollectionName.find({'yourCollectionName':{'$regex':'^yourWords'}}).pretty();

Cú pháp trên sẽ cung cấp cho tất cả các tài liệu bắt đầu từ một từ cụ thể.

Để hiểu cú pháp, chúng ta hãy tạo một bộ sưu tập với tài liệu. Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.performRegex.insertOne({"ClientName":"Larry","ClientFolderInformation":[
   "Folder 1","Folder 2","Folder 3","Folder 4","Folder 5"], "MainFolderLocation":"/MainFolder/Details/ClientFolder" });
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a8b186cea1f28b7aa07f2")
}
> db.performRegex.insertOne({"ClientName":"Larry","ClientFolderInformation":[
   "ClientFolder 1","ClientFolder 2","ClientFolder 3","ClientFolder 4","ClientFolder 5"],
   "MainFolderLocation":"/MainFolder/Details/ClientFolder" });
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8a8b1d6cea1f28b7aa07f3")
}

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 (). Truy vấn như sau -

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

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

{
   "_id" : ObjectId("5c8a8b186cea1f28b7aa07f2"),
   "ClientName" : "Larry",
   "ClientFolderInformation" : [
      "Folder 1",
      "Folder 2",
      "Folder 3",
      "Folder 4",
      "Folder 5"
   ],
   "MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}
{
   "_id" : ObjectId("5c8a8b1d6cea1f28b7aa07f3"),
   "ClientName" : "Larry",
   "ClientFolderInformation" : [
      "ClientFolder 1",
      "ClientFolder 2",
      "ClientFolder 3",
      "ClientFolder 4",
      "ClientFolder 5"
   ],
   "MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}

Đây là truy vấn để thực hiện regex.

Trường hợp 1 - Truy vấn dưới đây cung cấp tất cả các tài liệu bắt đầu từ từ ‘ClientFolder’ -

> db.performRegex.find({'ClientFolderInformation':{'$regex':'^ClientFolder'}}).pretty();

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

{
   "_id" : ObjectId("5c8a8b1d6cea1f28b7aa07f3"),
   "ClientName" : "Larry",
   "ClientFolderInformation" : [
      "ClientFolder 1",
      "ClientFolder 2",
      "ClientFolder 3",
      "ClientFolder 4",
      "ClientFolder 5"
   ],
   "MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}

Trường hợp 2 - Truy vấn dưới đây cung cấp tất cả các tài liệu bắt đầu từ từ 'Thư mục' -

> db.performRegex.find({'ClientFolderInformation':{'$regex':'^Folder'}}).pretty();

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

{
   "_id" : ObjectId("5c8a8b186cea1f28b7aa07f2"),
   "ClientName" : "Larry",
   "ClientFolderInformation" : [
      "Folder 1",
      "Folder 2",
      "Folder 3",
      "Folder 4",
      "Folder 5"
   ],
   "MainFolderLocation" : "/MainFolder/Details/ClientFolder"
}