我想用 SQL 的 like
查询一些东西:
SELECT * FROM users WHERE name LIKE '%m%'
如何在 MongoDB 中实现相同的目标?我在 文档 中找不到 like
的运算符。
原文由 Freewind 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想用 SQL 的 like
查询一些东西:
SELECT * FROM users WHERE name LIKE '%m%'
如何在 MongoDB 中实现相同的目标?我在 文档 中找不到 like
的运算符。
原文由 Freewind 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 MongoDb 中,可以像使用 MongoDb 引用运算符正则表达式(regex) 一样使用。
对于相同的前。
MySQL - SELECT * FROM users WHERE name LIKE '%m%'
MongoDb
1) db.users.find({ "name": { "$regex": "m", "$options": "i" } })
2) db.users.find({ "name": { $regex: new RegExp("m", 'i') } })
3) db.users.find({ "name": { $regex:/m/i } })
4) db.users.find({ "name": /mail/ })
5) db.users.find({ "name": /.*m.*/ })
MySQL - SELECT * FROM users WHERE name LIKE 'm%'
MongoDb Any of Above with /^String/
6) db.users.find({ "name": /^m/ })
MySQL - SELECT * FROM users WHERE name LIKE '%m'
MongoDb Any of Above with /String$/
7) db.users.find({ "name": /m$/ })
原文由 Sahil Thummar 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.3k 阅读
1 回答654 阅读
那必须是:
或者,类似的:
您正在寻找某处包含“m”的东西(SQL 的 ‘
%
’ 运算符等同于正则表达式 ‘ ’.*
‘),而不是锚定有“m”的东西字符串的开头。注意: MongoDB 使用的正则表达式比 SQL 中的“LIKE”更强大。使用正则表达式,您可以创建您想象的任何模式。
有关正则表达式的更多信息,请参阅 _正则表达式_(MDN)。