使用 PyMongo 執行 regex 查詢?


PyMongo 是一個 Python 發行版,包含用於操作 MongoDB 的工具。要使用 PyMongo 執行 regex 查詢,語法如下 −

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

以上語法會給出從特定詞語開頭的所有文件。

為了理解該語法,讓我們使用文件建立一個集合。建立帶有文件的集合的查詢如下 −

> 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")
}

透過 find() 方法顯示來自集合的所有文件。查詢如下 −

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

以下是輸出 −

{
   "_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"
}

以下是執行正則表示式的查詢。

用例 1 − 下面的查詢會給出以單詞“ClientFolder”開頭的所有文件 −

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

以下是輸出 −

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

用例 2 − 下面的查詢會給出以單詞“Folder”開頭的所有文件 −

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

以下是輸出 −

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

更新於: 2019 年 7 月 30 日

924 次瀏覽

開啟您的 職業 生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.