小编vav*_*uta的帖子

Mongo Regex Search的索引界限

我正在使用MongoDB,我有一组具有以下结构的文档:

{
    fName:"Foo",
    lName:"Barius",
    email:"fbarius@example.com",
    search:"foo barius"
}
Run Code Online (Sandbox Code Playgroud)

我正在构建一个将在该search字段上执行正则表达式搜索的函数.为了优化性能,我已在搜索字段中为此集合编制索引.然而,事情仍然有点慢.所以我运行了explain()一个示例查询:

db.Collection.find({search:/bar/}).explain();
Run Code Online (Sandbox Code Playgroud)

在获胜计划下,我看到使用了以下索引边界:

"search": [
        "[\"\", {})",
        "[/.*bar.*/, /.*bar.*/]"
]
Run Code Online (Sandbox Code Playgroud)

第二组是有道理的 - 它从包含条形的任何东西看到包含条形的任何东西.然而,第一集让我感到困惑.它似乎正在寻找""包容性与{}排他性的界限.我担心这个额外的界限会减慢我的查询速度.有必要保留吗?如果不是,我怎么能阻止它被包括在内?

regex indexing mongodb

15
推荐指数
1
解决办法
511
查看次数

PHP trim()在未指定时删除S.

使用PHP 7.2.8

关于trim()PHP中的函数我有一个奇怪的情况.举个例子,让我说这个陈述:

echo trim("sacas",",\s");
Run Code Online (Sandbox Code Playgroud)

我明白了

aca
Run Code Online (Sandbox Code Playgroud)

结果是.此外,如果我拨打一个略有不同的电话:

echo trim("  sacas",",\s")
Run Code Online (Sandbox Code Playgroud)

我明白了

  saca
Run Code Online (Sandbox Code Playgroud)

(如果很难看到,领先的空间仍然存在).

作为最好的,我可以告诉大家,什么是发生的是trim,它去除了匹配一组指定的所有前导和尾随字符,则删除所有s字符,忽略空格.但是/s应该表示空白字符,而根本不匹配s.

任何想法为什么会这样?如果是这样,我怎样才能在留下字符的同时删除空白s

作为一个说明,我的问题需要我修剪两个逗号和空格出来,所以我不能只是简单地使用TRIM(),没有额外的参数,它不会离开s独自

php

1
推荐指数
1
解决办法
71
查看次数

标签 统计

indexing ×1

mongodb ×1

php ×1

regex ×1