gpt4 book ai didi

php - Mongo 查询数组,当数组键未知时?

转载 作者:可可西里 更新时间:2023-11-01 10:35:41 25 4
gpt4 key购买 nike

我在数据库中有以下内容,我想用搜索词“打开”找到这个项目

我猜应该差不多是这样吧???

 $query = array(array('keywords' => array('$in'=>'open')));
$cursor = $collection->find($query);
return iterator_to_array($cursor);

在数据库中:

[3b33162ad4ed5ffdeb88a1b2085535b1] => Array
(
[_id] => 3b33162ad4ed5ffdeb88a1b2085535b1
[title] => Something
[keywords] => Array
(
[2] => open
[7] => source
)

[added] => MongoDate Object
(
[sec] => 1305884144
[usec] => 658000
)

)

最佳答案

您遇到的问题是数据的结构。

MongoDB 在查询时原生使用数组。以下将起作用。

$document = array( 'keywords' => array('open', 'source') );
$collection->insert($document);
$collection->find( array('keywords' => 'open') );

您遇到的问题是 keywords 在您的文档中不是一个数组。在您的文档中,keywords 是另一个文档。

'keywords' => array( '2' => 'open',
'7' => 'source' )

在 JSON 中,这看起来像这样:

{ 'keywords' : { '2': 'open', '7': 'source' } };

根据您的尝试,您需要将关键字保存为数组而不是哈希表。

在 PHP 中,您在代码时处理的内容并不总是很明显。但是,如果您print_r 一个数组,它将如下所示。请注意,该数组是从零开始的,并且没有丢失任何键。

    [keywords] => Array
(
[0] => open
[1] => source
[2] => rules
)

关于php - Mongo 查询数组,当数组键未知时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com