mongodb 更新添加每个地图结构的值
mongodb update add each map structure's value
有地图数据{"a": 2, "c": 4: "d": 0}
,
和 MongoDB 中的文档:
{
...
Score: {
"a": 1,
"b": 2,
"c": 0,
}
}
更新后的文档:
{
...
Score: {
"a": 3,
"b": 2,
"c": 4,
"d": 0,
}
}
是我想要的,现在效果很好:
bson.M{"$inc": bson.M{"Score.a": 2,....}},
如何在不知道密钥的情况下使用地图来更新 MongoDB 中的文档?映射到结构?或者使用MongoDB.map
函数?
如果你有映射值,你知道它的键,你可以遍历它们,并手动构建"dynamic"更新文档。
它可能是这样的:
m := map[string]int{
"a": 2,
"c": 4,
"d": 0,
}
incDoc := bson.M{}
for k, v := range m {
incDoc["Score."+k] = v
}
updateDoc := bson.M{"$inc": incDoc}
使用
打印结果
fmt.Printf("%#v\n", updateDoc)
输出将是:
bson.M{"$inc":bson.M{"Score.d":0, "Score.a":2, "Score.c":4}}
有地图数据{"a": 2, "c": 4: "d": 0}
,
和 MongoDB 中的文档:
{
...
Score: {
"a": 1,
"b": 2,
"c": 0,
}
}
更新后的文档:
{
...
Score: {
"a": 3,
"b": 2,
"c": 4,
"d": 0,
}
}
是我想要的,现在效果很好:
bson.M{"$inc": bson.M{"Score.a": 2,....}},
如何在不知道密钥的情况下使用地图来更新 MongoDB 中的文档?映射到结构?或者使用MongoDB.map
函数?
如果你有映射值,你知道它的键,你可以遍历它们,并手动构建"dynamic"更新文档。
它可能是这样的:
m := map[string]int{
"a": 2,
"c": 4,
"d": 0,
}
incDoc := bson.M{}
for k, v := range m {
incDoc["Score."+k] = v
}
updateDoc := bson.M{"$inc": incDoc}
使用
打印结果fmt.Printf("%#v\n", updateDoc)
输出将是:
bson.M{"$inc":bson.M{"Score.d":0, "Score.a":2, "Score.c":4}}