我有下列课程

public class Group {
  [BsonId]
  public ObjectID _id {get; set;}
  [BsonElement("Me")]
  public Members Dictionary<ObjectId, UserGroupProperties> Members {get; set;}
}

如何查询成员属性?其中memebres.objectid==objectid?
谢谢!

最佳答案

MongoDB有一个“dot notation”用于访问子对象或数组。
通常,查询将类似于以下内容:

Query.EQ("Me._id", objectid)

并将找到此结构的数据:
{
  _id: ObjectId(),
  me: [
        { _id: ObjectId(): { UserGroupProperties } },
        { _id: ObjectId(): { other UserGroupProperties } }
      ]
}

但是,看起来您的数据结构有点不同。你的数据如下吗?
{
  _id: ObjectId(),
  me: {
        ObjectId(): { UserGroupProperties },
        ObjectId(): { other UserGroupProperties }
      }
}

如果是的话,那你就是在寻找“我。客体”的存在。这是不同的。
这里要注意的一件大事是MongoDB将返回整个匹配的文档。因此,如果您要查找单个UserGroupProperties,那么查询将返回整个Group

关于mongodb - 如何在MongoDB上查询字典,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7232216/

10-15 23:48