1 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個贊
是的,這是可能的。一個簡單的例子是:
var myStruct struct {
Name string `json:"name" bson:"name,omitempty"`
Age int `json:"age" bson:"age"`
}
您將數(shù)據(jù)解析為 myStruct 并提供相同的對象進(jìn)行更新。
change := mgo.Change{
Update: bson.M{"$inc": bson.M{"n": 1}, "$set": bson.M{"name": myStruct.Name}},
Upsert: false,
Remove: false,
ReturnNew: true,
}
info, err = col.Find(M{"_id": id}).Apply(change, &doc)
fmt.Println(doc.N)
,omitempty 將以與 JSON 相同的方式工作,這意味著,如果它為空,則不會被解析,例如:
myStruct.Name = ""
myStruct.Age = 23
col.Insert(myStruct)
這將創(chuàng)建以下 BSON 文檔:
{
id: ObjectId("573da7dddd73171e42a84045"),
age: 23
}
- 1 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)