0
제 질문은 mongodb에서 update()와 $ push와 함께 '$ slice'를 사용할 수 있는지입니다.
나는 이미 시도 : (로와 (객체)
$db->collection->update(
array('_id' => new MongoId($id)),
(object)array('$push' =>
array('thumbs' => array(
'$each' => $items,
'$slice' => -5
))));
그러나 몽고가 컬렉션에 업데이트()에서 전체 두 번째 배열을 추가하는 일이 유일한 캐스트하지 않고 그래서
를 얻을. 사전에thumbs: [ { "$each" : ...
감사합니다!
왜 업데이트 매개 변수를 Object로 형 변환하고 있습니까? – Sammaye
php가 컬렉션의 객체와 배열을 구분할 수 없기 때문에. [] = 객체 및 {} = 배열. 그러나 그것을 캐스팅하지 않아도 작동하지 않습니다. – Zanders
PHP 드라이버는 중요하지 않습니다. dicts와 배열은 (당신이 말한 것처럼) 유사하며 PHP 드라이버는 관계없이 올바른 표기법으로 인코딩 할 수 있습니다. MongoDB 버전은 무엇입니까? '$ slice' 연산자는 매우 새롭기 때문에 (v2.4.3), MongoDB는 여러분이 입력 한 연산자를 이해하지 못하기 때문에 이것을 정상적인 문서로 읽습니다. – Sammaye