컬렉션 내의 배열에서 요소를 제거하려고합니다. 요소를 제거하려면 색인 (또는 날짜) 필드를보고 값이 가장 낮은 것을 제거해야합니다. 내 컬렉션의 예를 표현 명 "페이지"요소의 특정 필드에 최소값을 갖는 배열 요소 가져 오기
{
"_id": {
"$oid": "52e12df7e4b06e4ed65a554c"
},
"posts": [
{
"postId": {
"$oid": "52e12e5933a9fbec1100002d"
},
"date": 1390489177.267876,
"index": 1
},
{
"postId": {
"$oid": "52e12e5f33a9fb141800002c"
},
"date": 1390489183.277084,
"index": 2
}
],
"skillname": "Bilardo",
"skilltag": "Bilardo",
"currentIndex": 2
}
내가 게시물의 배열에서이 요소를 제거해야합니다 내가 할 것이 무엇이든간에
{
"postId": {
"$oid": "52e12e5933a9fbec1100002d"
},
"date": 1390489177.267876,
"index": 1
}
, 나는 최소한의 "를 찾아 관리 할 수 색인 "필드에 있습니다. 내가 쓰는 달성 마지막으로 PHP 코드는 다음과 같습니다 :
$this->db->pages->find(array('skilltag' => 'Bilardo'), array('posts.index' => 1))->sort(array("posts.index" => -1));
나는 "인덱스"필드도 "currentIndex"필드를 사용하여 기꺼이 아니에요. 하지만 타임 스탬프 값이있는 "날짜"필드에서 작업 할 수없는 경우에 대비하여 어쨌든 넣습니다.
어레이 내부에 필터링 않는 집계 기능 {
"postId": {
"$oid": "52e12e5933a9fbec1100002d"
},
"date": 1390489177.267876,
"index": 1
},
{
"postId": {
"$oid": "52e12e5f33a9fb141800002c"
},
"date": 1390489183.277084,
"index": 2
}
없다이다
상기 코드는 2 개 요소를 가지고 배열은 단지 하나의 요소의 배열을 반환? 최소값을 반환하는 집계를 찾을 수 없습니다. 나는 단지 사용자가 제공해야하는 최소값과 최대 값 사이의 값을 반환하는 집계 만 발견했습니다. 이는 제 경우에는 작동하지 않습니다.