21

$regexwithinを使用しようとしています$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);
  }
});

どこが間違っているのか、正しい構文を教えてもらえますか?


私も交換してみました

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

2 に答える 2

6

次のコードで動作するようになりました。

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/'

于 2013-04-29T05:27:56.157 に答える