当前位置: 首页 > 面试题库 >

如何用“ like”查询MongoDB?

訾晋
2023-03-14
问题内容

我想用SQLlike查询来查询一些东西:

SELECT * FROM users  WHERE name LIKE '%m%'

我如何在MongoDB中实现相同目标?我like在文档中找不到运算符。


问题答案:

那必须是:

db.users.find({"name": /.*m.*/})

或类似:

db.users.find({"name": /m/})

您正在寻找某种在某处包含“ m”的东西(SQL的' %'运算符等效于Regexp的' .*'),而不是在字符串的开头固定了“ m”的东西。

注意: mongodb使用的正则表达式比sql中的“ LIKE”更强大。使用正则表达式,您可以创建您想像的任何模式。

有关正则表达式的更多信息,请参阅此链接 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions



 类似资料:
  • 问题内容: 通配符*只能在单词的末尾使用,例如。 我想用like查询,该怎么做? 问题答案: Lucene提供了ReverseStringFilter,它允许执行通配符搜索,例如* user。它通过以相反顺序索引所有术语来工作。 但是我认为没有办法做类似’LIKE%user%’的事情。

  • 问题内容: 我用来从表中获取数据。现在,从称为的表中获取所有记录正在按预期方式工作。 现在,我希望对多个列执行查询,如下所示: 但这给LIKE带来了错误。我怎样才能做到这一点? 问题答案: 请像运营商一样使用 http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOpera

  • 问题内容: 可以说我有这样的第一张桌子 分支表 第二张桌子是这样的 余额表 我想查询余额表,其中每一行包含分支表的名称。例如分支表中的“ 123456ABC”,我想从余额表中获取“ ABC”行 我怎样才能做到这一点?到目前为止,我还没有尝试过这个查询 有什么建议吗? 问题答案: 你应该 转换 了的名称模式: 联接看起来更易读:

  • 主要内容:带有“%”通配符的查询,带有“_”通配符的查询,LIKE 区分大小写,使用通配符的注意事项和技巧在 MySQL 中, LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下: [NOT] LIKE  '字符串' 其中: NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。 LIKE 关键字支持百分号“%”和下划线“_”通配符。 通配符是一种特殊语句,主要用来模糊查询。当不知道真正

  • 问题内容: 我试图找到匹配特定模式的行数。在此示例中,所有以“ 123”开头的内容: 这正在工作: 问题是LIKE会有所不同,所以我试图在脚本中定义它,然后执行查询,但这不起作用: 在第二个示例中,如何使该查询正常工作? 编辑:我也尝试了没有期限(也无法正常工作): 问题答案: 您的语法错误;无需在双引号字符串内放置句点。相反,它应该更像 您可以通过打印出字符串以确认与第一种情况相同来确认这一点。

  • 前面介绍了如何查询数据库单条和多条数据,本小节介绍如何使用关键字模糊查询符合要求的结果集,模糊查询在实际业务中主要用于搜索关键字查询需要的信息。 1.模糊查询表达式 % 表示指代任意内容,例如 '%小%' 表示包含 小 的表达式,且 小 前后都有内容, '%小' 表示以 小 结尾的表达式,王 前面有内容,后面没有内容,'小%' 表示以 小 开头的表达式,小 前面没有内容,后面有内容。 2.使用LI