В MongoDB-PHP Я использую следующий пример код для толкания новой записи в конец массива внутри коллекции ...MongoDB + PHP: Как передать элемент массиву с помощью специального ключа?
$data = array(
"domain"=>"superduperyoyo.com",
"number"=>123,
"week"=>5,
"year"=>2012
);
$db->domains->save(
array('someid' => $someid),
array('$push' => array('data' => $data))
);
Это возвращает ключи, как 0,1,2,3 .. .. т.е.
[someid] => somesupercoolid123
[data] => Array
(
[0] => Array
(
[domain] => superduperyoyo.com
[number] => 123
[week] => 5
[year] => 2012
)
[1] => Array(...)
[2] => Array(...)
)
То, что я хочу сделать, это магазин YearWeekNumber как ключ, как это ...
[someid] => somesupercoolid123
[data] => Array
(
[201205123] => Array
(
[domain] => superduperyoyo.com
[number] => 123
[week] => 5
[year] => 2012
)
[201206123] => Array(...)
[201207123] => Array(...)
)
Как сохранить/обновить ключ вместе с новой записью? Я предполагаю, что вы не можете использовать $ push. Что вы просто используете .save или .update, но как вы передаете ключ?
Я только начал dabling с Монго, и я пробуя различные схемы. Я бы проиндексировал «число», «неделя», «год» ... ключ только для того, чтобы вытащить отдельную запись явно, если это необходимо, а также, поэтому у меня нет дубликатов. Set/Save будет обновляться, а не вставлять его снова. –