【问题标题】:How to query a document within a document in MongoDB?如何在 MongoDB 中查询文档中的文档?
【发布时间】:2013-09-25 20:34:13
【问题描述】:

好的,所以我的数据库中有这个文档结构:

Message: {
    uid: "id",
    subject: "I AM A MESSAGE!",
    body: "ASDF",
    recipients: {
        name: "John Doe",
        hasRead: "true"
    }
}

如何使用 C# 驱动程序为只有 John Doe 收到的项目编写查询?我正在使用 MongoDB 驱动程序 v1.3.1。

【问题讨论】:

    标签: c# asp.net-mvc-3 mongodb mongodb-.net-driver mongodb-query


    【解决方案1】:

    在 shell 中,查询是

    db.Message.find({"recipients.name" : "John Doe"});
    

    C# 查询取决于您在 C# 中使用的数据结构。我很生气recipients 是复数,但 json 不是数组。由于将 C# 集合映射到 JSON 有不同的方法,因此我无法以 linq 形式呈现 C# 查询。

    但是,鉴于您发布的数据结构,这应该可以:

    db.GetCollection("Message").Find(Query.EQ("recipients.name", "John Doe"));
    

    【讨论】:

    • 谢谢!最终查询正是我最终这样做的方式。 recipients 是复数的原因是它应该是一个列表,每个元素都有一个 namehasRead 属性。对不起,如果我在我的例子中没有说清楚。感谢您的回答!
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2018-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 2021-04-04
    相关资源
    最近更新 更多