2
從集合檢索文檔
我的目標我有收集:通過ID
type Room struct {
Id bson.ObjectId `json:"Id" bson:"_id"`
Name string `json:"Name" bson:"name"`
}
插入到集合:
room = &Room{Id: bson.NewObjectId(), Name: "test"}
RoomCollection.Insert(room)
從集合檢索(任意):
roomX := &Room{}
if err := RoomCollection.Find(bson.M{}).One(roomX); err != nil {
panic(err)
}
fmt.Printf("RoomX %s:\n%+v\n\n", roomX.Id, roomX)
該輸出:
RoomX ObjectIdHex("52024f457a7ea6334d000001"):
&{Id:ObjectIdHex("52024f457a7ea6334d000001") Name:test}
檢索從集合(按id):
roomZ := &Room{}
if err := RoomCollection.Find(bson.M{"_id": room.Id}).One(roomZ); err != nil {
panic(err) // throws "not found"
}
,這將引發 「找不到」,我想不通爲什麼。
您的代碼看起來正確。我只是想知道空白是否是分離json和bson字段標記的正確方法?使用MongoDB控制檯進行檢查,並確保Room.Id與'_id'存儲在一起,而不是'id'作爲字段名稱。 – ANisus
通常這是一個逗號 – thwd
@tomwilde:是的,但在反映包中說它是'可選空間分隔'。 Ondrej可以嘗試使用單個空間而不是多個空間。 – ANisus