0

私はこのようなmongodbレコードを持っています:

{ "_id" : "age_calculator-python|513216a576b99c26fb004e4d", "status" : "BADGE" }
{ "_id" : "age_calculator|5127d91376b99c457e000246", "status" : "BADGE" }
{ "_id" : "age_calculator|51381ef276b99c5b16002330", "status" : "BADGE" }
{ "_id" : "based|514f525c76b99c2ff7000398", "status" : "BADGE" }
{ "_id" : "binary_search-javascript|514f525c76b99c2ff7000398", "status" : "BADGE" }

正規表現($regex)でage_calculatorのみのレコードを探したいです。
私はこのようなことをしました:

db.collection.find({status:'BADGE', "_id" : {'$regex': '^age_calculator'})

のみの結果を取得したいのですage_calculatorが、上記のクエリには include もありますage_calculator-python

これを克服する方法は?誰でも助けてもらえますか?

4

1 に答える 1

1

正規表現の最後にドルを挿入します。これは「終了」を意味します。

db.collection.find({status: 'BADGE', '_id': {'$regex': '^age_calculator$'})

ただし、公平を期すために、正規表現のマッチングは、ファンキーなマッチングなしで終了し始めますが、完全一致に似ています。

db.collection.find({status: 'BADGE', '_id': 'age_calculator'})

Sammaye が指摘しているように、次のような意味でもかまいません。

db.collection.find({status: 'BADGE', '_id': {'$regex': '^age_calculator\\|'})

これは、パイプを含め、「age_calculator|」で始まるすべてのものと一致します。

于 2013-03-27T08:36:20.293 に答える