Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

PyMongo로 정규식 쿼리를 수행하시겠습니까?

<시간/>

PyMongo는 MongoDB 작업을 위한 도구가 포함된 Python 배포판입니다. PyMongo로 정규식 쿼리를 수행하기 위한 구문은 다음과 같습니다 -

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