我想用SQL查询一些东西,比如查询:
SELECT * FROM users WHERE name LIKE '%m%'
如何在MongoDB中实现这一点?我在文档中找不到这样的操作员。
我想用SQL查询一些东西,比如查询:
SELECT * FROM users WHERE name LIKE '%m%'
如何在MongoDB中实现这一点?我在文档中找不到这样的操作员。
当前回答
对于MongoDB Compass,您需要使用严格的模式语法,例如:
{ "text": { "$regex": "^Foo.*", "$options": "i" } }
(在MongoDB Compass中,使用“而不是”很重要)
其他回答
在PHP中,可以使用以下代码:
$collection->find(array('name'=> array('$regex' => 'm'));
如果您使用的是Spring Data MongoDB,可以通过以下方式实现:
String tagName = "m";
Query query = new Query();
query.limit(10);
query.addCriteria(Criteria.where("tagName").regex(tagName));
您可以在MongoDB中使用正则表达式。
例如
db.users.find({"name": /^m/})
如果您有字符串变量,则必须将其转换为正则表达式,因此MongoDB将对其使用类似的语句。
const name = req.query.title; //John
db.users.find({ "name": new Regex(name) });
结果与:
db.users.find({"name": /John/})
>> db.car.distinct('name')
[ "honda", "tat", "tata", "tata3" ]
>> db.car.find({"name":/. *ta.* /})