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

$regex에서 MongoDB 필드 값을 패턴으로 사용할 수 있습니까?

<시간/>

예, 이를 위해 집계 프레임워크와 함께 $indexOfCP 연산자를 사용합니다. 먼저 문서로 컬렉션을 생성해 보겠습니다. −

> db.patterDemo.insertOne(
   {
      "ClientName": "John", "ClientWebsiteName":"webbuziness.com/John/business"
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cea40acef71edecf6a1f68d")
}
> db.patterDemo.insertOne(
   {
      "ClientName": "Carol", "ClientWebsiteName":"solvecoding.com/business"
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cea40acef71edecf6a1f68e")
}

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다. -

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

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : ObjectId("5cea40acef71edecf6a1f68d"),
   "ClientName" : "John",
   "ClientWebsiteName" : "abcd.com"
}
{
   "_id" : ObjectId("5cea40acef71edecf6a1f68e"),
   "ClientName" : "Carol",
   "ClientWebsiteName" : "pqrs.com"
}

다음은 $regex −

에서 필드 값을 패턴으로 사용하는 쿼리입니다.
> db.patterDemo.aggregate([ { "$match": { "$expr": { "$ne": [ { "$indexOfCP": ["$ClientWebsiteName", "$ClientName"] }, -1 ] } }} ]);

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5cea40acef71edecf6a1f68d"), "ClientName" : "John", "ClientWebsiteName" : "abcd.com" }