2014-09-18 3 views
0

다음은 mongodb에서 모든 문서를 가져 오는 코드의 일부입니다. mgo를 통해 알려지지 않은 몽고 문서를 가져 오는 방법

func fetchAll(db *mgo.Database) map[string]interface { 
    var msg map[string]interface{} 
    err := db.C("msg").Find(nil).All(&msg) 
    if err != nil { 
     panic(err) 
    } 
    return msg 
} 

가 나는 오류가 발생했습니다 : 구문 오류 : 예기치 않은 VAR

여기 뭐가 문제? 그리고 mgo를 통해 임의의 mongo 문서를 가져 오는 더 좋은 방법이 있습니까?

감사

답변

4

우선, 구문 오류 수정 :

func fetchAll(db *mgo.Database) map[string]interface{} { 
    var msg map[string]interface{} 
    err := db.C("msg").Find(nil).All(&msg) 
    if err != nil { 
     panic(err) 
    } 
    return msg 
} 

주 함수 리턴 형 선언의 {}.

하지만 더 많은 것이 있습니다. All()은 결과 집합의 모든 문서를 조각으로 검색합니다. 반환 유형을지도의 조각으로 변경하십시오.

func fetchAll(db *mgo.Database) []map[string]interface{} { 
    var msgs []map[string]interface{} 
    err := db.C("msg").Find(nil).All(&msgs) 
    if err != nil { 
     panic(err) 
    } 
    return msgs 
} 

당황하지 말고 오류를 반환하겠습니다.

func fetchAll(db *mgo.Database) ([]map[string]interface{}, error) { 
    var msgs []map[string]interface{} 
    err := db.C("msg").Find(nil).All(&msgs) 
    return msgs, err 
} 
관련 문제