/// <summary>
 /// Visits a MongoSelectExpression.
 /// </summary>
 /// <param name="node">The expression to visit.</param>
 /// <returns>The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.</returns>
 protected virtual Expression VisitSelect(MongoSelectExpression node)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Initializes an instance of the MongoProjectionExpression class.
 /// </summary>
 /// <param name="source">The select expression that is the source of the data</param>
 /// <param name="projector">The expression that does the projection.</param>
 public MongoProjectionExpression(MongoSelectExpression source, Expression projector)
     : base(MongoExpressionType.Projection, typeof(IEnumerable<>).MakeGenericType(projector.Type))
 {
     _source = source;
     _projector = projector;
 }