2015-01-12 2 views
2

MongoDB에서 장바구니를 만들고 있는데, 이미 추가 된 제품을 사용자가 추가하면 수량 필드를 업데이트하려고합니다.PHP의 2 가지 조건에 기초한 MongoDB의 수량 업데이트

이 내 문서입니다 :

{ 
    "_id" : "mzipdNS2Xyw-IqV085KrBe5RZucp9M_KqDSYjPinq20", 
    "products" : [ 
     { 
      "productId" : "27122", 
      "quantity" : NumberLong(1), 
      "displayPrice" : "€ 599.00", 
      "price" : NumberLong(599), 
      "name" : "APPLE IPHONE 5S 16GB SPACE GRAY" 
     } 
    ] 
} 

내 문서를 업데이트하려면 다음 코드를 실행 해요,하지만 누군가가 나를 도울 수, 작동하지 않습니다?

$collection->update(array("_id" => $userId, array("products" => array("productId" => $productId))), 
       array('$set' => array("quantity" => $newQuantity 
       )) 
      ); 

답변

1

제품 배열에서 올바른 항목을 업데이트하려면 positional $ operator을 사용해야합니다.

$collection->update(
    array(
     "_id" => $userId, 
     "products.productId" => $productId, 
    ), 
    array('$set' => array("products.$.quantity" => $newQuantity)) 
); 
+0

내가 뭘 찾고 있었는지 고마워! –