mongodb - 如何在 MongoDB 上查询字典

标签 mongodb mongodb-.net-driver

我有以下类(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/

相关文章:

linux - MongoDB GUI 客户端(跨平台或 Linux)

C# MongoDB IAsyncCursor 详解

c# - MongoDB C# 驱动程序 CancellationToken

MongoDB C# 查询从文档中选择特定键

json - 如何保存 MongoDB 查询并在之后运行它?

node.js - Mongoose OR 运算符与 _id

c# - CosmosDb - 写入操作导致错误。错误=16500

javascript - 如何生成 404 错误而不是强制转换错误

mongodb - 如何使用 C# 官方驱动创建具有 Null 值的 Bson 文档?

asp.net-mvc - MongoDB、C#、QueryFailure 标志不是 master 并且slaveOk=false