Php 是否对MongoDB中的数组执行不区分大小写的查找?
所以,我决定用MongoDB打湿我的脚,并且到目前为止我很喜欢它。它似乎非常快速和灵活,这是伟大的。但是,我仍在经历最初的学习过程,因此,我花了数小时挖掘最基本的信息 我搜索了整个MongoDB在线文档,花了几个小时在页面上搜索,没有提到这一点。我知道Mongo仍然很新(v1.x),所以它解释了为什么还没有太多信息。我甚至一直在寻找关于Mongo的书,但运气不好。是的,我试过RTM,但运气不好,所以,现在我转向你 我在每个文档(即:#apples,#oranges,#apples,#apples,#apples)中嵌套了一系列不同的hashtag,我想执行一个不区分大小写的find()来访问任何情况下包含苹果的所有文档。find似乎确实支持一些带有/i的正则表达式,但我似乎也无法实现这一点 不管怎样,我希望这对某人来说是一个快速的答案 下面是我在PHP中的现有调用,它区分大小写:Php 是否对MongoDB中的数组执行不区分大小写的查找?,php,mongodb,case-insensitive,nosql,Php,Mongodb,Case Insensitive,Nosql,所以,我决定用MongoDB打湿我的脚,并且到目前为止我很喜欢它。它似乎非常快速和灵活,这是伟大的。但是,我仍在经历最初的学习过程,因此,我花了数小时挖掘最基本的信息 我搜索了整个MongoDB在线文档,花了几个小时在页面上搜索,没有提到这一点。我知道Mongo仍然很新(v1.x),所以它解释了为什么还没有太多信息。我甚至一直在寻找关于Mongo的书,但运气不好。是的,我试过RTM,但运气不好,所以,现在我转向你 我在每个文档(即:#apples,#oranges,#apples,#apples
$cursor = $collection->find(array( "hashtags" => array("#".$keyword)))->sort(array('$natural' => -1))->limit(10);
帮助?我怀疑您的查询没有返回您真正想要的 如果你这样做
db.col.find( { some_array_field: ["item1", "item2"] } );
然后它将只匹配在某个数组字段中正好包含这两个项的文档。因此,如果有一个带有[item1,item2]标签的文档,它将匹配,但是带有[item1,item2,item3]标签的文档将不匹配
您可以使用本文中描述的$all参数:
e、 g
或:
一开始,在MongoDB中,完全文档匹配和部分匹配的区别让我很困惑。我怀疑您的查询没有返回您真正想要的内容 如果你这样做
db.col.find( { some_array_field: ["item1", "item2"] } );
然后它将只匹配在某个数组字段中正好包含这两个项的文档。因此,如果有一个带有[item1,item2]标签的文档,它将匹配,但是带有[item1,item2,item3]标签的文档将不匹配
您可以使用本文中描述的$all参数:
e、 g
或:
一开始,在MongoDB中,完全文档匹配和部分匹配的区别确实让我感到困惑。这里是一个使用
php在MongoDB
中进行不区分大小写搜索的示例
$search_string='baR';
$searchQuery = array(
'$or' => array(
array(
'field1' => new MongoRegex("/^$search_string/i"),
),
array(
'field2' => new MongoRegex("/^$search_string/i"),
),
)
);
$cursor = $customers->find($searchQuery);
希望这能有所帮助。下面是一个使用php
在mongodb
中搜索不区分大小写的示例
$search_string='baR';
$searchQuery = array(
'$or' => array(
array(
'field1' => new MongoRegex("/^$search_string/i"),
),
array(
'field2' => new MongoRegex("/^$search_string/i"),
),
)
);
$cursor = $customers->find($searchQuery);
希望这能有所帮助。我想你的意思是:newmongoregex(“/^search\u string$/I”)
,不是吗?MongoRegex
已经因为MongoDB\BSON\Regex
而被弃用,所以现在你应该做newmongodb\BSON\Regex(“^$search\u string\$”,“/I”)
用于对变量$search\u string
进行不区分大小写的查找。我想您的意思是:新建MongoRegex(“/^search\u string$/I”)
,不是吗?MongoRegex
已被弃用于MongoDB\BSON\Regex
,所以现在您应该使用新建MongoDB\BSON\Regex(“^$search\u string\”,“/I”)
用于变量$search\u string
的不区分大小写的查找。