鉴于一个文档具有下面JSON描述的结构,我需要知道我是否可以更新单个节点上的字段值,我所知道的就是论坛帖子的价值' _id'字段和主文档ID。
请注意,该文档包含一系列论坛帖子,每个论坛帖子都可以包含atree类型结构的嵌套论坛帖子。我需要能够修改" 中的嵌套论坛帖子更新任何具有属性' _id'匹配X "方式。
我目前认为我可以提取文档并在应用程序层中递归搜索具有相应' _id'的节点。 value,然后构造一个查询来更新已发现节点深度的节点。
我想知道是否有更好的方法。 MongoDB是否具有用于查询文档中未知深度的节点的内置功能?如果有,我可以使用它来更新该节点上的字段值吗?
{
"_id" : ObjectId("5553555ca077e61d64d0ef27"),
"ThreadTitle" : "Test Post",
"Upvotes" : 0,
"CreatedMemberId" : 123,
"ForumPosts" : [{
"_id" : "75e9b53a-0358-4b17-8969-592eac36c294",
"Upvotes" : 2,
"CreatedMemberId" : 123,
"PostText" : "This is some test post text",
"PostImages" : null,
"SubForumPosts" : [{
"_id" : "5f1c8d4b-8258-4290-9de1-f5e0c0971915",
"Upvotes" : 2,
"CreatedMemberId" : 456,
"PostText" : "This is some test post text from 456",
"PostImages" : null,
"SubForumPosts" : [{
"_id" : "2956ca8f-2890-4eca-a3b2-2595a7b8c3ad",
"Upvotes" : 2,
"CreatedMemberId" : 123,
"PostText" : "This is some test post text from 123",
"PostImages" : null,
"SubForumPosts" : null
}, {
"_id" : "8d105548-f82a-4cd5-8f6c-b34b1ce273ee",
"Upvotes" : 4,
"CreatedMemberId" : 789,
"PostText" : "This is some test post text from 789",
"PostImages" : null,
"SubForumPosts" : null
}]
}]
}]
}