MongoDB:以层次结构

时间:2015-05-13 14:08:52

标签: c# mongodb

鉴于一个文档具有下面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
            }]
        }]
    }]
}

0 个答案:

没有答案