0
this question 다음은 upsert: false
과 multi: true
필드가 작동하도록 설정해야합니다.PHP를 사용하여 MongoDB 컬렉션에있는 모든 문서의 필드 이름 바꾸기
:
$conn = new Mongo("mongodb://foo:[email protected]:27017");
$db = $conn->selectDB("someDB");
$data = array('$rename' => array(
'nmae' => 'name'
));
$db->command(array(
'findAndModify' => 'foo',
'update' => $data,
'upsert' => 'false',
'multi' => 'true'
));
이 스크립트를 실행 한 후 nmae
오타 첫 번째 문서가 name
로 변경됩니다; 나머지는 여전히 nmae
라고합니다. upsert
및 multi
옵션없이 실행 한 것과 같습니다.
$data = array('$rename' => array(
'nmae' => 'name'
),
'upsert' => 'false',
'multi' => 'true'
);
$db->command(array(
'findAndModify' => 'foo',
'update' => $data
));
하지만 그 같은 일을 수행합니다
나는 또한이 시도.
이 방법을 얻으려면 어떤 방법이 있으십니까?
findAndModify 쿼리는 "멀티"옵션이 없습니다
이 덕분에,하지만 여전히 작동하지 않는 것 모든 문서는 MongoDB에서 실행될 때 해당 명령이 수행하는 방식과 동일합니다. 내가 가지고있는 것은'$ db-> someDB-> 업데이트 (array(), $ data, array ('$ multi'=> true, '$ upsert'=> false)); PHP-Mongo Driver에 구현되었습니다. –
nvm. 문서를 자세히 읽지 않았습니다. 그것은'array ('multiple'=> true)'이어야합니다. –