2013-02-26 4 views
-1

안녕하세요이 같은 이미지 객체에 대한 고객의 배열이 있습니다업데이트 한 쿼리에서 부모 개체의 하위 개체

은 클라이언트 객체가 다른 곳으로 업데이트됩니다
{ 
     id: 1, 
     path: "2013-02/12", 
     clients: 
     [ 
      { 
        id: 321, 
        alias: "Test: audienceDev", 
      } 
     ], 
}, 

, 내가 클라이언트 개체를 업데이트 할 필요를 이 이미지 객체에.

이 나는 ​​시도했다 :

  $this->mongoDB->Image->update(
       array('clients.id' => (int) $document->id), 
       array('$set' => array('client' => $document)), 
       array('multiple' => true) 
      ); 

  $this->mongoDB->Image->update(
       array('clients[].id' => (int) $document->id), 
       array('$set' => array('client' => $document)), 
       array('multiple' => true) 
      ); 

둘은 이미지 객체의 클라이언트 개체를 업데이트합니다.

제안 사항?

답변

1

는 고객의 배열을 가지고 내가 그렇게 모든 클라이언트 개체를 업데이트하기 위해, 이해, 당신은이 작업을 수행해야한다 : 이것은 그 '$ 문서 수준> 아이디'업데이트와 함께 모든 클라이언트를 찾을 수

$this->mongoDB->Image->update(
    array('clients.id' => (int) $document->id), 
    array('$set' => array('clients.$' => $document)), 
    array('multiple' => true) 
); 

'clients'배열의 모든 클라이언트 (. $).

0
array('$set' => array('client' => $document)) 

클라이언트 분야는 무엇입니까? 너는 그렇지 않다.

개체 목록을 업데이트하려면 전체 전체 목록을 바꾸어야합니다. 또는 새 항목을 누르고 이전 항목을 당깁니다. clients.id 기준에 따라 문서를 찾으려고 할 때 고객 목록이 아닌 목록 만 문서 목록에 표시됩니다. 또한 필요에 따라 업데이트 용 js 함수를 작성할 수 있습니다. 그리고 그것을 몽고브에 보관하십시오.

관련 문제