理由はわかりませんが、サブ配列アイテムに対して $addToSet を機能させるのに非常に苦労しています。
これは次のようになります。
{
"items": [
{
"id": "510bca8138fc5d6e38000000",
"quantity": "1"
},
{
"id": "51011a8138fc5d6348000000",
"quantity": "1"
}
],
"session": "1359948849.291898629576",
"status": "cart"
}
ただし、最初のもののみを許可するようです:
{
"items": [
{
"id": "510bca8138fc5d6e38000000",
"quantity": "1"
}
],
"session": "1359948849.291898629576",
"status": "cart"
}
別のサブ配列を挿入しません。
私のコード:
$document = $collection->findOne(array('session' => $_SESSION["redi-Shop"]));
//print_r($document);
if (null !== $document) {
$collection->update(
array('session' => $_SESSION["redi-Shop"]),
array(
'$addToSet' => array(
'items' => $_POST['item']
),
));
print_r($_POST['item']);
}
else
{
$collection->insert(
array('session' => $_SESSION["redi-Shop"],
'status' => "cart",
'items' => $_POST['item'])
);
}