Mongodb 按id从集合中检索文档
我收藏的物品:Mongodb 按id从集合中检索文档,mongodb,go,bson,mgo,Mongodb,Go,Bson,Mgo,我收藏的物品: type Room struct { Id bson.ObjectId `json:"Id" bson:"_id"` Name string `json:"Name" bson:"name"` } room = &Room{Id: bson.NewObjectId(), Name: "test"} RoomCollection.Inser
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)
在收藏中插入:
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 ObjectIdHex("52024f457a7ea6334d000001"):
&{Id:ObjectIdHex("52024f457a7ea6334d000001") Name:test}
正在从集合中检索(按id):
这会抛出“not found”(未找到),我不知道为什么。根据
reflect
包,字段的不同键值标记应该用空格隔开
按照惯例,标记字符串是可选的空格分隔键:“值”对的串联。每个键都是非空字符串,由空格(U+0020’)、引号(U+0022’)和冒号(U+003A’:’)以外的非控制字符组成。每个值都使用U+0022’’字符和Go字符串文字语法引用
mgo
程序包无法读取标签,并将Id值存储为Id
,而不是\u Id
您的代码看起来是正确的。我只是想知道空格是否是分隔json和bson字段标记的正确方法?检查MongoDB控制台,确保Room.Id以\u Id
而不是Id
作为字段名存储。通常它是comma@tomwilde:是的,但在reflect包中,它表示它是可选的空格分隔的
。Ondrej可以尝试使用单个空格而不是多个空格。你是对的,是制表符导致了问题。谢谢。啊,很高兴知道。我加了一个答案:)