0

理由はわかりませんが、サブ配列アイテムに対して $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'])
                );
        }
        
4

1 に答える 1

1

$addToSet を $Push に変更したところ、正常に動作しました

于 2013-02-04T04:33:41.003 に答える