有一个 map 数据{"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,....}},
如何在不知道其键的情况下使用 map 来更新 MongoDB 中的文档?映射到结构?或者使用 MongoDB .map
函数?
最佳答案
如果您有映射值,您知道它的键,您可以遍历它们,并手动构建“动态”更新文档。
它可能是这样的:
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}}
关于mongodb更新添加每个映射结构的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48446999/