Details
-
Improvement
-
Resolution: Works as Designed
-
Unknown
-
None
-
None
-
None
-
None
Description
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 |