2016-10-10 64 views

回答

0

將結果解碼爲interface{}。將interface{}編碼爲JSON。

var v interface{} 
if err := c.Find(query).One(&v); err != nil { 
    // handle error 
} 
p, err := json.Marshal(v) 
if err != nil { 
    // handle error 
} 

// p is []byte containing the JSON 
1

的方法One()與文檔根據:執行查詢並解組第一獲得的文檔到結果參數,所以它反正做元帥,但我們可以「欺騙」,它使用的類型json.RawMessage那只是一部分字節,它在std庫中。

var result json.RawMessage 

if err := c.Find(query).One(&result); err != nil { ... } 

關於RawMessage有一個完整的示例here

+0

謝謝,這似乎比把它放入一個結構更慢,我認爲它會更快。 – P456678