我是Node的新手。
在Mongo shell中,我在集合" system.user"
上发出此命令db.system.users.find({_id: "test.admin"})
并取回此记录
{
"_id": "test.admin",
"user": "admin",
"db": "test",
"credentials": {
"SCRAM-SHA-1": {
"iterationCount": 10000,
"salt": "hBehS02+DJL+XX92dpuXnw==",
"storedKey": "6TifIE7lc4TLKkMSYC6yjX/WZ5Y=",
"serverKey": "gqxsc9a6Z8HvBLpZl8bNxiPsYWA="
}
},
"roles": [{
"role": "root",
"db": "admin"
}]
}
我的问题是,有没有人有一个示例JavaScript,它将告诉我如何更新角色属性。这样在JavaScript /节点更新之后
db.system.users.find({_id: "test.admin"})
然后将阅读
{
"_id": "test.admin",
"user": "admin",
"db": "test",
"credentials": {
"SCRAM-SHA-1": {
"iterationCount": 10000,
"salt": "hBehS02+DJL+XX92dpuXnw==",
"storedKey": "6TifIE7lc4TLKkMSYC6yjX/WZ5Y=",
"serverKey": "gqxsc9a6Z8HvBLpZl8bNxiPsYWA="
}
},
"roles": [{
"role": "dbowner",
"db": "admin"
}]
}
更改"角色" :" root"到"角色" :" dbowner"
我正在寻找最多" atomic"这样做的方式,也许某种json解析。 不只是简单的字符串替换。
答案 0 :(得分:1)
您可以尝试这样的事情
db.system.users.updateOne({_id: "test.admin"}, {"roles.role":"dbowner"}, {upsert:1});