pymongo在regex中指定的字符后停止扫描

2024-04-26 21:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的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)查找只有“年龄计算器”的记录。
我做了这样的事:

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

我只想得到age_calculator的结果,但上面的查询甚至包括age_calculator-python。你知道吗

如何克服这个问题? 有人能帮忙吗?你知道吗


Tags: badgeiddbagesearchmongodbstatus记录
1条回答
网友
1楼 · 发布于 2024-04-26 21:20:14

在正则表达式的末尾插入一美元,意思是“end”:

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|u calculator |',包括管道。你知道吗

相关问题 更多 >