Проблема, с которой вы столкнулись, заключается в структуре ваших данных.
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
)