MongoDB - 使用Linq对子文档进行条件

时间:2012-07-14 13:54:44

标签: linq mongodb conditional-statements documents

我正在使用mongo-csharp-driver来查询我的Mongo实体。 我有以下对象存储在Mongo中:

public class Table
{
    public int Id { get; private set; }
    public string Description{ get; private set; }       
    public List<Player> Players { get; private set; }

    public Table()
    {
    }
 }

public class Player
{
    public int Id { get; private set; }

    public string Username{ get; private set; }        
    public Player()
    {
    }
 }

当我尝试通过id或description查询“Table”对象时,我得到了相应的结果,但是当我尝试通过播放器列表进行查询时,我得到null:

// Works ok
var tab1 = mongo.GetCollection<Table>().Where(g => g.Description == "Test");
// Always return null, although should return the same result
var tab2 = mongo.GetCollection<Table>().Where(g => g.Players.Count > 90).FirstOrDefault();

我在这里缺少什么? 谢谢, 尼尔。

1 个答案:

答案 0 :(得分:0)

问题在于Count property被翻译为$size query operator

在链接的“高级查询”页面中,您可以看到:

  

“您不能使用$ size来查找一系列大小(例如:数组   超过1个元素)。“