sql >> Databáze >  >> NoSQL >> MongoDB

Problém s párováním regulárních výrazů MongoDB

Problém je s částečnou shodou, protože neomezujete regulární výraz pro celé slovo, částečná shoda, která existuje v a:b:c to je a:b výsledkem je získání tohoto dokumentu.

Použijte následující regulární výraz s ^$ což jsou kotvy, které představují začátek a konec slova;

db.foo.find({path: /^a:[^:]+$/})
db.foo.find({path: /^a:[a-z]+$/})

Tím se regulární výraz použije pro celý řetězec a bude ignorovat částečné shody, jak je vysvětleno výše. Pro více informací o kotvách regulárních výrazů klikněte sem .

Stručně řečeno, nejde o žádnou chybu, pouze o zneužití regulárního výrazu.




  1. $in operátor mongoDB s _id v perlu

  2. Redis Stack Exchange, jak odstranit nebo získat klíče podle vzoru

  3. MongoDB $bsonSize

  4. PyMongo- výběr dílčích dokumentů z kolekce podle regulárního výrazu