以下代码:
Lobby := map[string]interface{}{
"table_id" :"new table id",
"Status" : true,
"name" : "shivam",
"array":[]interface{}{0,1,3},// this replace existing array with new values
}
result, err := client.Collection("lobbies").Doc("12").Set(ctx,Lobby,firestore.MergeAll)
我只想用新值
更新数组中的第二个元素答案 0 :(得分:2)
无法通知数据库替换切片或数组中的特定元素。
您的array
字段存储切片而不是地图,因此您需要实现自己的代码,以您需要的方式重新生成该切片并将其替换为文档,例如:
Lobby := map[string]interface{} {
"table_id" : "new table id",
"Status" : true,
"name" : "shivam",
"array" : []interface{}{0,1,3},
}
new_slice, err := change_my_slice(Lobby["array"])
if err != nil {
log.Errorf("Error message goes here")
return nil, err
}
Lobby["array"] = new_slice
result, err := client.Collection("lobbies").Doc("12").Set(ctx,Lobby,firestore.MergeAll)