First support for array first element match

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Works as Designed
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

       

              var filterBuilder = Builders<SubscriptionRepositorySubscriptionModel>.Filter;
              var statusFilter = filterBuilder.Where(x => x.SubscriptionStatus == (byte)SubscriptionStatus.Active);
              var dateFilter = filterBuilder.Where(x => x.UpcomingOrders.First().NextTargetDeliveryDate >= DateTime.UtcNow 
                                                        && x.UpcomingOrders.First().NextTargetDeliveryDate <= targetDeliveryDate);
              var filter = filterBuilder.And(statusFilter, dateFilter);
              if (!string.IsNullOrEmpty(country))
              {
                  filter = filterBuilder.And(filter, filterBuilder.Where(x => x.ShippingAddress.CountryCode == country));
              }
              var result = await _subscriptionCollection.Distinct(x => x.CustomerId, filter).ToListAsync(); 

      Exception:

      System.InvalidOperationException: First({document}{UpcomingOrders}.Select({document}{NextTargetDeliveryDate})) is not supported.\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.GetFieldExpression(Expression expression)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.TranslateComparison(Expression variableExpression, ExpressionType operatorType, ConstantExpression constantExpression)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.TranslateAndAlso(BinaryExpression node)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate(Expression node, IBsonSerializerRegistry serializerRegistry)\r\n   at MongoDB.Driver.Linq.Linq2Implementation.Translators.PredicateTranslator.Translate[TDocument](Expression`1 predicate, IBsonSerializer`1 parameterSerializer, IBsonSerializerRegistry serializerRegistry)\r\n  

       

              Assignee:
              Robert Stam
              Reporter:
              Weihan Li
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: