作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下类(class)
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 }
}
}
如果是这样,那么您正在寻找“me.objectid”的存在。这是不同的。
这里要注意的重要一点是 MongoDB 将返回整个匹配的文档。因此,如果您要查找单个 UserGroupProperties
,您的查询将返回整个 Group
。
关于mongodb - 如何在 MongoDB 上查询字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232216/
我是一名优秀的程序员,十分优秀!