mgo를 사용하여 MongoDB에서 구조화되지 않은 데이터 처리
초보 Go 개발자의 경우 mgo 라이브러리는 MongoDB 컬렉션의 구조화되지 않은 데이터를 처리할 때 문제를 제기할 수 있습니다. . 이러한 제한은 쿼리에 의해 반환될 미리 정의된 데이터로 구조체를 정의해야 하기 때문에 발생합니다. 키에 대한 유연한 액세스를 위해 레코드를 배열에 할당할 수 있는 PHP와 같은 언어와 달리 Go에는 이러한 기능이 없습니다.
그러나 mgo는 구조화되지 않은 데이터를 처리하기 위한 여러 가지 접근 방식을 제공합니다.
지도 사용:
bson.M 유형의 지도를 사용하면 검색된 데이터를 저장할 수 있습니다. 키-값 형식:
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
문서 슬라이스 사용:
bson.D 슬라이스는 키 순서를 유지하면서 최적화된 접근 방식을 제공합니다.
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
인라인 지도 사용 필드:
맵의 유연성과 구조체의 편리함을 결합한 인라인 bson 플래그는 구조체 내의 인라인 맵 필드를 허용하여 알려진 필드와 알려지지 않은 필드 액세스를 모두 제공합니다.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
위 내용은 Go의 mgo 라이브러리는 어떻게 MongoDB의 구조화되지 않은 데이터를 효과적으로 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!