Given this schema:
> db.foo.find().pretty()
{
"_id" : 1,
"bars" : [
{
"x" : 1,
"y" : 2
},
{
"x" : 2,
"y" : 3
},
{
"x" : 1,
"y" : 4
}
]
}
and these classes:
private class Foo
{
public int Id;
public List<Bars> Bars;
}
private class UnwoundFoo
{
public int Id;
[BsonElement("Bars")]
public Bar Bar;
}
private class Bar
{
[BsonElement("x")]
public int X;
[BsonElement("y")]
public int Y;
}
The following aggregation query results in a NRE:
var list = await col.Aggregate()
.Unwind<Foo, UnwoundFoo>(x => x.Bars)
.Match(x => x.Bar.X == 1)
.Project(x => new { X = x.Bar.X, Y = x.Bar.Y })
.ToListAsync();