Details
-
Bug
-
Resolution: Works as Designed
-
Major - P3
-
None
-
2.6.1
-
None
-
c# driver 2.6.1,
server version 3.4.10
windows 7 sp1 64 bit
Description
I have a class:
class DynamicForm |
{
|
public long? FolderId { get; set; } |
public long PatientSystemId { get; set; } |
|
|
public DateTime ModifiedDate { get; set; } |
}
|
I have a function that gets the PatientSystemId as parameter GetDynamicFormsAsync(long patientSystemId)
I run the following query:
var query = db.GetCollection<DynamicForm>("dforms").AsQueryable() |
.Where(a => a.PatientSystemId == patientSystemId && a.FolderId == null) |
.MaxAsync(a => a.ModifiedDate);
|
var qResult = await query;
|
When there are documents in the database that meet the filter criteria I do get the Max date as desired.
However, if there is no document meeting the query criteria then I get a run-time exception:
System.InvalidOperationException
|
HResult=0x80131509 |
Message=The source sequence is empty.
|
Source=MongoDB.Driver
|
StackTrace:
|
at MongoDB.Driver.AsyncCursorHelper.<SingleAsync>d__3`1.MoveNext() |
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
|
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
|
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() |
at ..... my code
|
When patientSystemId parameter equals 51, the following query is generated:
{
|
"aggregate" : "dforms", |
"pipeline" : [ |
{ "$match" : { "patientSystemId" : NumberLong(51), "folderId" : null } }, |
{ "$group" : { "id" : 1, "_result" : { "$max" : "$modifiedDate" } } } |
],
|
"cursor" : { } |
}
|
When running this query in mongo shell, no exception occurs.
Can you please address this bug / issue.
Just say that you have read it please.
Thanks,
Itzhak