홈>
서비스간에 공유하기 위해 몇 가지 일반적인 방법 (CRUD 방식)을 코딩하려고합니다. 다음은
GetAll()
입니다.
내 컬렉션에있는 모든 문서를 반환하는 메소드 :
func GetAll(out interface{}) error {
// mongodb operations
// iterate through all documents
for cursor.Next(ctx) {
var item interface{}
// decode the document
if err := cursor.Decode(&item); err != nil {
return err
}
(*out) = append((*out), item)
// arrays.AppendToArray(out, item) // Read below :)
}
return nil // if no error
}
나는 또한 약간의 반성으로 시도했지만,
package arrays
import "reflect"
func AppendToArray(slicePtrInterface interface{}, item interface{}) {
// enter `reflect`-land
slicePtrValue := reflect.ValueOf(slicePtrInterface)
// get the type
slicePtrType := slicePtrValue.Type()
// navigate from `*[]T` to `T`
_ = slicePtrType.Elem().Elem() // crashes if input type not `*[]T`
// we'll need this to Append() to
sliceValue := reflect.Indirect(slicePtrValue)
// append requested number of zeroes
sliceValue.Set(reflect.Append(sliceValue, reflect.ValueOf(item)))
}
panic: reflect.Set: value of type primitive.D is not assignable to type *mongodb.Test [recovered] panic: reflect.Set: value of type primitive.D is not assignable to type *mongodb.Test
내가 원하는 것은
cursor.Decode(&item)
와 같은 접근법을 얻는 것입니다
(위에서 볼 수 있습니다)
- 답변 # 1
관련 자료
- c++ - 배열의 첫 번째, 마지막, 두 번째, 두 번째에서 마지막 등의 요소를 어떻게 출력합니까?
- c - memcpy ()가 동일한 배열에 있지만 오프셋이있는 배열의 요소 복사에 실패하는 이유
- c # - c #의 배열에서 선택한 요소 반환
- c++ - 성적을 GPA 값으로 변환하기 위해 2D 배열을 어떻게 업데이트합니까?
- java - 배열에서 자신의 요소 비교
- java - 조건을 충족하는 배열에서 요소를 무작위로 선택하려면 어떻게해야합니까?
- reactjs - useState를 사용하여 문자열 배열을 선언 한 다음 Typescript를 사용할 때 업데이트하는 방법은 무엇입니까?
- javascript - 배열을 배열로 푸시 한 다음 내부 요소 처리
- javascript - React에서 div 태그 내부의 배열 요소를 하나씩 순환하는 방법
- reactjs - 가져온 JSON 데이터로 thissetState를 통해 빈 배열을 업데이트하기 위해 componentDidMount ()를 가져올 수 없습니다
- sql - 일부 키의 값으로 직접 pg의 json 배열 데이터를 업데이트하는 방법은 무엇입니까?
- c - 포인터를 사용하여 참조되는 배열에서 두 개의 float 요소를 곱합니다
- javascript - React에서 양식 요소 배열 반복
- Java - 자바 - foreach 및 람다를 사용하여 arraylist의 요소를 배열에 할당
- python - 2D 배열의 각 행에 고유 한 요소 찾기
- javascript - 일부 요소를 건너 뛰는이 정렬 배열의 문제점은 무엇입니까?
- javascript - HTML 요소를 배열로 푸시하여 나중에 동적으로 생성되는 div에 추가합니다
- node.js - 동일한 배열 필드에 많은 업데이트 연산자 적용
- javascript - 배열을 반복하고 요소를 데이터 속성으로 사용
- html - eventListener에 대한 JavaScript의 배열 요소에 액세스
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
방법은 다음과 같습니다.
다음과 같이 부르십시오 :
Go Playground에서 실행하십시오.
비 포인터 슬라이스 요소와 작동하는 코드의 일반화는 다음과 같습니다.