Details
-
Bug
-
Resolution: Works as Designed
-
Major - P3
-
None
-
2.10.1
-
None
Description
var settings = MongoClientSettings.FromUrl(new MongoUrl("mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false")); |
var client = new MongoClient(settings); |
var database = client.GetDatabase("ZipDataSet"); |
var collection = database.GetCollection<Zip>("Zips"); await collection.InsertManyAsync(new List<Zip> |
{
|
new Zip |
{
|
ZipCode = 1, |
Population=100, |
},
|
new Zip |
{
|
ZipCode = 2, |
Population=200, |
},
|
new Zip |
{
|
ZipCode = 3, |
Population=300, |
},
|
});
|
|
|
//this is expected behavior |
var resultFind = await collection.Find(new BsonDocument()).Project(el => new { |
DividedPopulation = el.Population / 23 |
}).ToListAsync();
|
|
|
//this is throw exception |
var resultProject = await collection.Aggregate().Project(el => new { |
DividedPopulation = el.Population / 23 |
}).ToListAsync();
|
|
|
|
Exception:
Message:
|
System.FormatException : An error occurred while deserializing the DividedPopulation property of class <>f__AnonymousType0`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]: Truncation resulted in data loss. |
---- MongoDB.Bson.TruncationException : Truncation resulted in data loss.
|
Stack Trace:
|
BsonClassMapSerializer`1.DeserializeMemberValue(BsonDeserializationContext context, BsonMemberMap memberMap) |
BsonClassMapSerializer`1.DeserializeClass(BsonDeserializationContext context) |
BsonClassMapSerializer`1.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) |
IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) |
EnumerableSerializerBase`2.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args) |
IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) |
CursorDeserializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
|
IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) |
AggregateResultDeserializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
|
IBsonSerializerExtensions.Deserialize[TValue](IBsonSerializer`1 serializer, BsonDeserializationContext context) |
CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) |
CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) |
ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) |
RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) |
ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) |
AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) |
AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) |
OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) |
MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) |
MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) |
MongoCollectionImpl`1.UsingImplicitSessionAsync[TResult](Func`2 funcAsync, CancellationToken cancellationToken) |
IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) |
StatisticsEventRepository.SuperCustomLogicHere() line 81 |
MongoRepositoryTests.DoNothing() line 27 |
--- End of stack trace from previous location where exception was thrown ---
|
----- Inner Stack Trace -----
|
RepresentationConverter.ToInt32(Double value)
|
Int32Serializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
|
IBsonSerializer.Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
|
IBsonSerializerExtensions.Deserialize(IBsonSerializer serializer, BsonDeserializationContext context)
|
BsonClassMapSerializer`1.DeserializeMemberValue(BsonDeserializationContext context, BsonMemberMap memberMap) |
Attachments
Issue Links
- causes
-
CSHARP-2924 Consider adding conversion logic into a generated Project query for Aggregate when it's necessary
-
- Closed
-