在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,但是如何传递密钥呢?
发布于 2012-05-03 05:21:53
您可以使用$set来完成此操作
$data = array(
"domain"=>"superduperyoyo.com",
"number"=>123,
"week"=>5,
"year"=>2012
);
$db->domains->update(
array( 'someid' => $someid),
array( '$set' => array( 'data' => array( 201205123 => $data )))
);然而,我不建议这样做。最好用这个"201205123“值设置另一个键,否则您将无法对此值执行范围查询或设置索引。
发布于 2012-07-12 07:33:50
$data = array(
"domain"=>"superduperyoyo.com",
"number"=>123,
"week"=>5,
"year"=>2012
); $update = array(
'$push' => array('data.201205123' => $data )
);https://stackoverflow.com/questions/10420635
复制相似问题