我尝试使用通配符搜索MongoDB以获取一些信息。我试图找到所有"代理商"使用某种类型的通配符在给定的邮政编码附近。这就是我所拥有的:
db.agents.find({company_address:"49085"},{_id:1,email:1,company_address:1}).pretty()
对于邮政编码,我可以使用以下内容:...find({company_address:"490*"}...
吗?
答案 0 :(得分:4)
您可以使用正则表达式查找文本/字符串中的模式。
...find({company_address:{ $regex: '^490' }})
这允许在 490 ...
之后的所有内容例如:
...find({company_address:{ $regex: '^490[0-9]+$' }})
找到以490开头的字符串,并继续一个或多个数字。
...find({company_address:{ $regex: '^490[0-9]{1,5}$' }})
另一个是字符串,以490开头,并持续1或5位数。
...find({company_address:{ $regex: '^490[0-9]{1,}$' }})
从<4>开始,至少还有1个数字。
...find({company_address:{ $regex: '^490[0-9]{4}$' }})
从<4>开始,以490开始。
^
模式表示字符串的开头,$
表示字符串的结尾,这样就确保它始终是一个数字。
有关正则表达式的更多信息,请查看此处:http://docs.mongodb.org/manual/reference/operator/query/regex/
你可以在regex101测试一些正则表达式,看看你应该选择右边的Java Script,因为MongoDB使用Java Script
答案 1 :(得分:0)
试试这个&#34;以&#34;开头正则表达式:
db.agents.find(
{
company_address: /^490/
}, //SQL equivalent like '490%'
{_id:1, email: 1, company_address: 1}
)
假设company_address
有一个字符串值。