Мой объект у меня есть в коллекции:
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"
}
Это бросает «не найдено», и я не могу понять, почему.
_id
, а неid
в качестве имени поля. - person ANisus   schedule 07.08.2013optionally space-separated
. Ондрей мог бы попробовать использовать один пробел вместо нескольких. - person ANisus   schedule 07.08.2013