Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MongoDB中查询文档中的文档?_C#_Asp.net Mvc 3_Mongodb_Mongodb .net Driver_Mongodb Query - Fatal编程技术网

C# 如何在MongoDB中查询文档中的文档?

C# 如何在MongoDB中查询文档中的文档?,c#,asp.net-mvc-3,mongodb,mongodb-.net-driver,mongodb-query,C#,Asp.net Mvc 3,Mongodb,Mongodb .net Driver,Mongodb Query,好的,我的数据库中有这个文档结构: Message: { uid: "id", subject: "I AM A MESSAGE!", body: "ASDF", recipients: { name: "John Doe", hasRead: "true" } } 如何使用C#driver为只有John Doe收到的项目编写查询?我正在使用MongoDB驱动程序v1.3.1。在shell中,查询将是 db.Message

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

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

如何使用C#driver为只有John Doe收到的项目编写查询?我正在使用MongoDB驱动程序v1.3.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
是复数的原因是它应该是一个列表,每个元素都有一个
name
hasRead
属性。对不起,如果我在我的例子中没有说清楚的话。谢谢你的回答!