gpt4 book ai didi

c++ - MongoDB C++ 更新数组并添加元素

转载 作者:行者123 更新时间:2023-11-30 05:02:43 25 4
gpt4 key购买 nike

我想更新保存在 MongoDB 数据库(编程语言 C++)中的以下 JSON 文档的“用户”数组

{
"_id" : ObjectId("5ac4beacc0e2a512e6377d43"),
"document" : "test",
"user" : [
{
"email" : "a@gmail.com",
"username" : "Anton Held",
"job" : "",
},
{
"email" : "b@gmail.com",
"username" : "Benny Bill",
"job" : "IT-Officer",
},
{
"email" : "c@gmail.com",
"username" : "Conny Cenn",
"job" : "",
},
]
}

因此我使用此命令来获取此特定文档:

collection.update_one(document{} << "document" << "test"
<< finalize,
document{} << "$set" << open_document <<
(HOW TO DEAL?!) close_document << finalize);

我知道可以使用“update_one”方法(或“replace_one”、“find_one_and_replace”等类似方法)更新文档。

但我不知道如何处理这种方法,例如使用“email”-element="a@gmail.com"更新现有用户的用户名,或者如何将用户添加到现有数组“用户”。

请帮助我:-)

最佳答案

所以您的问题归结为如何将此 mongo 命令转换为 C++ 代码:

db.getCollection("testcollection").update(
{"document":"test", "user.email":"a@gmail.com"},
{"$set": {"user.$.username":"New Username"}}
)

这是它的样子。注意模式:

  • 成对输出键和值
  • 对嵌套的 {} 使用 open_documentclose_document

示例结果:

collection.update_one(
document{} << "document" << "test"
<< "user.email" << "a@gmail.com"
<< finalize,
document{} << "$set"
<< open_document
<< "user.$.username" << "New Username"
<< close_document << finalize
);

关于c++ - MongoDB C++ 更新数组并添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49715777/

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