Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-2106

Projection fails when expression has field names that are substrings of each other

    • Type: Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 2.4.4
    • Component/s: API, Command Operations
    • None
    • Environment:
      Windows .NetStandard 2.0

      When you have a nested object where there are 2 properties such that the name of the first property starts with the name of the second property.

      public class SubscriberSource
      {
      /// ...
      public DateTime? StatusChangeDate
      { get; set; }
      public SubscriberStatus Status { get; set; }
      }
      
      

      And you try to build a projection, it will not generate anything for the projection at all. There is probably somewhere in the code that a .startsWith is utilized to add fields to the projection builder for some reason.
      So when i write something like

      _collection.Find(query).Project(x => new
      { x.StatusChangeDate, x.Status }
      )
      

      No projection is passed to mongoDb at all and all fields are returned.

            Assignee:
            wan.bachtiar@mongodb.com Wan Bachtiar
            Reporter:
            vrybak@vertmarkets.com Vadim Rybak
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: