Question

I'm using the mongo-csharp-driver to query my Mongo entities. I have the following objects which are stored in the 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()
    {
    }
 }

When I'm trying to query the "Table" object by id or description, I get the appropriate results, but when I try to query by the list of player, I get 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();

What am I missing here? Thanks, Nir.

Was it helpful?

Solution

The issue is that Count property is translated into the $size query operator.

From the linked Advanced Queries page you can see that:

"You cannot use $size to find a range of sizes (for example: arrays with more than 1 element)."

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top