如何使用通配符通过命令行搜索 MongoDB
How to search MongoDB through the comand line with a wildcard
我正在尝试使用通配符搜索 MongoDB 一些信息。我正在尝试使用某种类型的通配符查找给定邮政编码附近的所有 "agents"。这是我拥有的:
db.agents.find({company_address:"49085"},{_id:1,email:1,company_address:1}).pretty()
对于邮政编码,我可以使用类似的东西吗:...find({company_address:"490*"}...
?
您可以使用正则表达式在 text/strings 中查找模式。
假设地址以数字开头:
...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,}$' }})
选择 从 490 开始并且至少多 1 个数字。
...find({company_address:{ $regex: '^490[0-9]{4}$' }})
选择 从 490 开始并正好连续 4 位数字。
^
模式表示字符串的开头,$
表示字符串的结尾,这样可以确保它始终是一个数字。
有关正则表达式的更多信息,请查看此处:http://docs.mongodb.org/manual/reference/operator/query/regex/
你可以在 regex101 测试一些正则表达式,看你应该选择右边的 Java Script 因为 MongoDB 与 Java Script
一起工作
试试这个 "starts with" 正则表达式模式:
db.agents.find(
{
company_address: /^490/
}, //SQL equivalent like '490%'
{_id:1, email: 1, company_address: 1}
)
假设 company_address
有一个字符串值。
我正在尝试使用通配符搜索 MongoDB 一些信息。我正在尝试使用某种类型的通配符查找给定邮政编码附近的所有 "agents"。这是我拥有的:
db.agents.find({company_address:"49085"},{_id:1,email:1,company_address:1}).pretty()
对于邮政编码,我可以使用类似的东西吗:...find({company_address:"490*"}...
?
您可以使用正则表达式在 text/strings 中查找模式。
假设地址以数字开头:
...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,}$' }})
选择 从 490 开始并且至少多 1 个数字。
...find({company_address:{ $regex: '^490[0-9]{4}$' }})
选择 从 490 开始并正好连续 4 位数字。
^
模式表示字符串的开头,$
表示字符串的结尾,这样可以确保它始终是一个数字。
有关正则表达式的更多信息,请查看此处:http://docs.mongodb.org/manual/reference/operator/query/regex/
你可以在 regex101 测试一些正则表达式,看你应该选择右边的 Java Script 因为 MongoDB 与 Java Script
一起工作试试这个 "starts with" 正则表达式模式:
db.agents.find(
{
company_address: /^490/
}, //SQL equivalent like '490%'
{_id:1, email: 1, company_address: 1}
)
假设 company_address
有一个字符串值。