gpt4 book ai didi

javascript - 如何更新 MongoDB 中已有的字段

转载 作者:行者123 更新时间:2023-12-03 01:36:24 24 4
gpt4 key购买 nike

根据 MongoDB 文档,$set将字段的值替换为指定值,或者如果该字段不存在,则添加具有指定值的新字段。我的问题是,如何添加到现有行而不替换现有行,例如:

{
"_id" : ObjectId("58dc9feca463e61042d2e462"),
"email" : "spguillen@yahoo.com",
"accountType" : "admin",
"accessKeys" : [
{
"keyId" : "d06e6640-2f98-11e7-810b-67d01c2ba6eb",
"name" : "Admin Key",
"rights" : [
"Read",
"Create",
"Delete"
]
}
]
}

我想在 accessKeys 字段中添加以下内容:

{"keyId": "50fcb190-5636-11e7-855a-0d21d5eb6743", "name": "Standard Key", "rights": ["Update"]}

无需覆盖现有的访问 key 。理想情况下,还为任何 accountType: admin 的帐户设置一个条件,如果没有 accessKeys,它将使用上面的访问 key 设置一个 accessKey 字段,但当有访问 key 时,附加上面的访问 key 到现有的。

最佳答案

您可以使用$push运算符将新项目追加到现有数组中。您还可以将其用于没有 accessKeys 字段的文档 - 在这种情况下,将创建单元素数组:

db.col.update(
{"_id": ObjectId("58dc9feca463e61042d2e462")},
{ $push: {
"accessKeys": {"keyId": "50fcb190-5636-11e7-855a-0d21d5eb6743", "name": "Standard Key", "rights": ["Update"]}
}
})

关于javascript - 如何更新 MongoDB 中已有的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51055054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com