programing

mongodb 집계 쿼리에서 $regex를 $match 내에서 사용하는 방법

showcode 2023. 6. 19. 21:47
반응형

mongodb 집계 쿼리에서 $regex를 $match 내에서 사용하는 방법

내부를 사용하려고 하는데, 일치하는 문서가 반환되지 않습니다.

db.collection('MyCollection', function (err, collection) {
  collection.aggregate([
    { $match: { 'Code': 'Value_01', 'Field2': { $regex: '/Value_2/g' } } },  
    { $project: {
        _id: 1,
        CodeNumber: '$Code',
        FieldName2: '$Field2'
      }
    }
  ], function (err, Result_doc) {
    console.log(Result_doc);
  }
});

어디가 잘못되고 있는지 정확한 구문을 알려줄 수 있는 사람이 있습니까?


I even tried with replacing the

'Field2': { $regex: /Value_2/g }

에 나와 있는 것처럼.$regex연결한 문서의 두 가지 방법은 다음과 같습니다.

Field2: /Value_2/g

OR

Field2: { $regex: 'Value_2', $options: 'g' }

하지만 두 번째 시도도 시도해봤어요'Field2': { $regex: /Value_2/g }그리고 그것도 효과가 있었습니다.

BTW, 더gregex 옵션은 어차피 하나의 일치만 필요하기 때문에 이 맥락에서 의미가 없습니다.목록에 나열되지도 참조하십시오.$regex문서

다음 코드로 작동하게 되었습니다.

var Value_match = new RegExp('Value_2');

db.collection('MyCollection', function (err, collection) {

  collection.aggregate([
    { $match: { Code: 'Value_01', Field2: { $regex: Value_match } } },  
    { $project: {
        _id: 1,
        CodeNumber: '$Code',
        FieldName2: '$Field2'
      }
    }
  ], function (err, Result_doc) {
    console.log(Result_doc);
  }
});

다음을 사용하여 개체 콘텐츠를 콘솔로 푸시할 때console.dir(Value_match)출력됩니다.'/Value_2/'

언급URL : https://stackoverflow.com/questions/16252208/how-to-use-regex-in-mongodb-aggregation-query-within-match

반응형