Você pode usar a sintaxe baseada em string, pois a expressão não oferece nenhuma vantagem com
dynamic
de qualquer forma:var cursor = db.GetCollection<dynamic>("foo").
Find(Builders<dynamic>.Filter.Eq("_id", someId));
dynamic
de qualquer forma:var cursor = db.GetCollection<dynamic>("foo").
Find(Builders<dynamic>.Filter.Eq("_id", someId));