2014-10-01 3 views
0

문서에서 값을 업데이트하려고하는데 내가해야 할 일을 보여주는 예제를 보지 못했습니다. 내 문서가 어떻게 보이는지는 다음과 같습니다.Mongo 중첩 된 개체 배열 업데이트

{ 
    "_id" : ObjectId("5429e8a53150d03d541c7a53"), 
    "foo" : { 
     "bar" : { 
      "0" : { 
       "email" : { 
        "0" : "[email protected]" 
       } 
      } 
     } 
    } 
} 

물론 내 실제 개체는 아니지만 구조를 나타냅니다. [email protected][email protected]으로 업데이트하려면 어떻게해야합니까?

어떻게이 동일한 요소를 제거할까요?

또한 (bunus 포인트의 경우) 어떻게 PHP Mongo 클래스를 사용하여 업데이트하겠습니까?

+0

반환 된 mongo json 객체와 상호 작용하기 위해 PHP 라이브러리를 사용하고 있습니까? – Jason

+0

내가 사용하고있는 응용 프로그램은 다음을 사용합니다. http://php.net/manual/en/class.mongo.php 나는 deprecated가 아니라는 것을 알고 있습니다. 이것은 반드시 쉬운 것은 아닙니다. 이 클래스 주위에 래퍼를 작성하려는 시도가 있었지만 잘 수행되지 않아 차라리 피할 수있었습니다. –

+0

참고 :이 작업은 작동하지 않는 첫 번째 시도입니다. db.test.update ({ "foo.bar.0": "email"}, {$ set : { "0": "[email protected]" }})); –

답변

0

좋습니다. 알아 냈습니다.

db.test.update({"foo.bar.0.email" : {"0":"[email protected]"} },{$set:{"foo.bar.0.email.0":"[email protected]"}}); 

그리고 이것은 당신이 그림을 나에게 몇 시간이 걸렸다 때문에 누군가를하는 데 도움이 몽고 클래스 I 희망

$db = new Mongo("connection stuff"); 

$condition = array('foo.bar.0.email' => array('0' => '[email protected]')); 
$data = array('$set' => array('foo.bar.0.email.0' => '[email protected]')); 

$db->test->update($condition, $data); 

를 사용하여 PHP에서 그것을 할 방법입니다 : 이것은 당신이 콘솔에서 작업을 수행하는 방법이다 이거.