mgo를 사용하여 Go에서 구조화되지 않은 MongoDB 컬렉션 처리
mgo를 사용하여 MongoDB에서 컬렉션을 쿼리할 때 해당 데이터를 미리 정의할 수 있습니다. 제공된 Person 구조체 예제에서 설명한 것처럼 구조체로 반환됩니다. 그러나 컬렉션의 문서에 다양한 키 세트가 있는 시나리오가 있을 수 있습니다.
Go/mgo에서 구조화되지 않은 컬렉션을 처리하는 방법
여러 가지 방법이 있습니다. Go / mgo에서 구조화되지 않은 컬렉션을 처리하려면:
map:
map[string]인터페이스{}인 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) }
인라인 맵 필드 사용:
맵 필드에서 ,inline bson 플래그 사용 구조체에서는 구조체 사용의 편리함과 알 수 없는 필드를 처리하는 유연성을 결합할 수 있습니다.
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
위 내용은 mgo를 사용하여 Go에서 구조화되지 않은 MongoDB 컬렉션을 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!