3
我想使用mongo c驱动程序更新单个文档中的嵌套数组。下面是一个例子测试文档:mongo c驱动程序更新嵌套数组
{
"_id" : ObjectId("562416504bacd3940b8b2d5c"),
"folder1" : [
{
"folder_id" : "5624200d4bacd3940b8b2d62",
"some" : "data"
},
{
"folder_id" : "562940084bacf60575d3b17e",
"some" : "data"
}
],
"folder2" : [
{
"folder_id" : "5627e20d4bacefccf4864e4e",
"some" : "data"
}
]
}
我想通过这两个"folder1"
和"folder2"
迭代寻找匹配特定字符串(如:5624200d4bacd3940b8b2d62
)任何"folder_id"
。然后我希望从数组中删除整个元素。所以删除后我的文档应该看起来像:
{
"_id" : ObjectId("562416504bacd3940b8b2d5c"),
"folder1" : [
{
"folder_id" : "562940084bacf60575d3b17e",
"some" : "data"
}
],
"folder2" : [
{
"folder_id" : "5627e20d4bacefccf4864e4e",
"some" : "data"
}
]
}
我知道如何修改文档中的单个元素,例如下面。但我还没有找到任何通过嵌套数组元素迭代的好例子。
update = BCON_NEW ("$set", "{","some_cool_key", BCON_UTF8 ("some cool data for key"),"}");
mongoc_collection_update (collection, MONGOC_UPDATE_NONE, query, update, NULL, &error);
唯一的“缺点”是它只有folder1。为了解决这个问题,我只需执行两次命令(一次为folder1,第二次为folder2) –