我需要向MongoDB查询字段的编号:姓名、电话、电子邮件。查询应该支持“like”
语法:“%s%”
执行查询的更好方法是什么:
示例集合包含以下文档
{
name: "Evgeny3345",
phone: "4678946",
email: "trial@stack.com"
},
{
name: "bug",
phone: "84567521",
email: "bug@stack.com"
},
{
name: "bug2",
phone: "84567521",
email: "deny@stack.com"
}
当我发现所有带有姓名、电话或电子邮件且包含“eny”
的文档时,应返回文档1和3。
最好使用搜索模式创建一个RegExp
对象,并将其与引用所有三个字段的$or表达式一起使用。差不多
var rgx = new RegExp('ny', 'i'),
query = {
"$or": [
{ "name": rgx },
{ "phone": rgx },
{ "email": rgx }
]
};
db.collection.find(query)
样本输出:
/* 0 */
{
"_id" : ObjectId("562cf265d3ea50dcd6085c52"),
"name" : "Evgeny3345",
"phone" : "4678946",
"email" : "trial@stack.com"
}
/* 1 */
{
"_id" : ObjectId("562cf265d3ea50dcd6085c54"),
"name" : "bug2",
"phone" : "84567521",
"email" : "deny@stack.com"
}
我正在使用Spring-Boot 1.5.10,并将JPA连接到SQL Server2016。我确实有一个执行LIKE的自定义查询,但是当字段为NULL时,不会返回记录:
问题内容: 我一直认为您可以在语句中使用它来查询MySQL中的内容。因此,如果我想将一行中的多个字段与1个关键字或字词进行比较: 如果我有一系列要比较的单词: 我不相信语法是正确的。除了类似的东西,是否有一种有效的方法可以编写此代码: 我能正确处理吗? 问题答案: 用这个::
我有这样一个问题: 其中我将存储到数据库中的DateTime与通过java方法传递的localDate进行比较。我收到这个异常: 有一种方法可以配置hibernate/jpa自动进行转换,或者我必须传递一个日期对象,而不是LocalDate?我甚至尝试导入hibernate-java8,但没有改变
问题内容: 可以说我有这样的第一张桌子 分支表 第二张桌子是这样的 余额表 我想查询余额表,其中每一行包含分支表的名称。例如分支表中的“ 123456ABC”,我想从余额表中获取“ ABC”行 我怎样才能做到这一点?到目前为止,我还没有尝试过这个查询 有什么建议吗? 问题答案: 你应该 转换 了的名称模式: 联接看起来更易读:
主要内容:带有“%”通配符的查询,带有“_”通配符的查询,LIKE 区分大小写,使用通配符的注意事项和技巧在 MySQL 中, LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下: [NOT] LIKE '字符串' 其中: NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。 LIKE 关键字支持百分号“%”和下划线“_”通配符。 通配符是一种特殊语句,主要用来模糊查询。当不知道真正
问题内容: 我试图找到匹配特定模式的行数。在此示例中,所有以“ 123”开头的内容: 这正在工作: 问题是LIKE会有所不同,所以我试图在脚本中定义它,然后执行查询,但这不起作用: 在第二个示例中,如何使该查询正常工作? 编辑:我也尝试了没有期限(也无法正常工作): 问题答案: 您的语法错误;无需在双引号字符串内放置句点。相反,它应该更像 您可以通过打印出字符串以确认与第一种情况相同来确认这一点。