C#在MongoDB中的List <string>中查找字符串</string>

时间:2013-11-23 11:48:49

标签: c# mongodb mongodb-.net-driver

这里有一些MongoDB问题,因为我试图找到一个匹配ID的集合。 因为我正在建立一种基于MongoDB的树结构。我有包含多个属性的对象,如姓名,父母和孩子,以便他们了解那里的关系。 现在我可以从和对象通过它的子ID并逐个加载每个对象。我怎么会注意到它的速度要快得多。

所以现在我的问题是,如何在MongoDB中表示的树节点对象的集合中找到intrest的ID。

mongoDB文档的外观示例

{
  "_id" : ObjectId("523de6c6d7b47f1f74c98ba2"),
  "IDType" : "root",
  "Name" : "test root",
  "Relations" : [{
      "Children" : {
        "ChildrenList" : ["523de725d7b47f1d0c8242f1", "523de746d7b47f1d0c8242f5"]
      },
      "Parents" : {
        "ParentList" : []
      }
    }]
}

那么,如何通过ChildrenList中的ID匹配找到其中一个ID? 这个RelationsChildren and Parents的数组。这两个包含要匹配的ID数组。

在没有成功的情况下尝试了这个。

IMongoQuery searchQuery = Query.ElemMatch("Children", Query.EQ("ChildrenList", "523de746d7b47f1d0c8242f5"));

1 个答案:

答案 0 :(得分:1)

好的,因为我找到了解决方案,感谢WiredPrairie,我想我应该发布它。 解决方案显然不是将ElemMatch用于零件,而是像这样写。

IMongoQuery searchQuery = Query.EQ("Relations.Parents.ParentList", objectID);

无论如何,请向正确的方向寻求帮助。