如何让“喜欢” MongoDB 中的查询工作?
我有一个街道名称列表,我想选择所有以“Al”开头的名称。 在我的 MySQL 中,我会做类似
SELECT * FROM streets WHERE "street_name" LIKE "Al%"
使用 PHP 的 MongoDB 怎么样?
I have a list of street names and I want to select all that start with "Al".
In my MySQL I would do something like
SELECT * FROM streets WHERE "street_name" LIKE "Al%"
How about MongoDB using PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
使用正则表达式:
或:
http://www.mongodb.org/ display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
将其转换为 PHP:
Use a regular expression:
or:
http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-RegularExpressions
Turning this into PHP:
请参阅: http://www.mongodb.org/display/DOCS /SQL+to+Mongo+Mapping+Chart
另外,强烈建议仅使用 PHP 的本机 mongodb 连接器而不是包装器。它比任何包装器都要快得多。
http://php.net/class.mongodb
See: http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart
Also, highly recommend just using the native mongodb connector from PHP instead of a wrapper. It's way faster than any wrapper.
http://php.net/class.mongodb
这是我的工作示例:
here is my working example:
$collection.find({"name": /.*Al.*/})
或类似的
$collection.find({"name": /Al/})
code>您正在寻找在某处包含“Al”的内容(SQL 的“%”运算符相当于正则表达式“.*”),而不是在字符串开头锚定“Al”的内容。
$collection.find({"name": /.*Al.*/})
or, similar,
$collection.find({"name": /Al/})
You're looking for something that contains "Al" somewhere (SQL's '%' operator is equivalent to regexps' '.*'), not something that has "Al" anchored to the beginning of the string.
MongoRegex 已被弃用。
使用 MongoDB\BSON\Regex
MongoRegex has been deprecated.
Use MongoDB\BSON\Regex
查看更多详情
View for more details
你也可以做这样的事情
You can also do something like this