-
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