Mongo c#驱动程序查询(选择子字段)

时间:2014-04-10 14:55:30

标签: c# linq mongodb mongodb-.net-driver

下列情况: 我有一个用户列表,一个人有一个带有评论列表的字段。

User1: {
      ...
      Id : 'xxxx',
      Comment : [{
                   ...
                   Status : 1
                }
                ,{
                   ...
                   Status : 0
                }]
}

我正在寻找一个Mongo c#Query,它选择DB Collection中所有用户的状态为1的所有评论。

因为英语不好而烦恼。

THX

2 个答案:

答案 0 :(得分:2)

假设您有以下类,其中包含集合的序列化值:

public class User1
{
    public string Id { get; set; }

    public Comment[] Comments { get; set; }
}

public class Comment
{
   public int Status { get; set; }
}

然后查询应该是这样的:

var query =
    collection.AsQueryable<User1>().SelectMany(user => user.Comments.Where(com=>com.Status == 1));

答案 1 :(得分:0)

X

我这样解决:

var query1  =  Query.EQ("Comments.Status", 1)
IEnumerable<Comment> comments = Collection.Distinct<Comment>("Comments", query1).Where(x => x.Status == 1);

comments .toList() // <= list of Comments with Status 1

如果有人有更好的解决方案,请发布。

再次,

本杰明