C#Mongodb获取游标计数

C#Mongodb获取游标计数,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我正在尝试使用下面的代码找出集合中是否存在文档。每当查询没有找到任何文档时,我就会得到一个StackOverflowException。我做错了什么 MongoServer server = MongoServer.Create(connectionString); MongoDatabase db = server.GetDatabase(database); MongoCollection<Document> documents = db.GetCollection<Doc

我正在尝试使用下面的代码找出集合中是否存在文档。每当查询没有找到任何文档时,我就会得到一个StackOverflowException。我做错了什么

MongoServer server = MongoServer.Create(connectionString);
MongoDatabase db = server.GetDatabase(database);
MongoCollection<Document> documents = db.GetCollection<Document>("Documents");
var query = Query.EQ("DocID", doc.DocID);
var result = documents.FindOneAs<Document>(query);

if (result != null)
{
    doc.Id = result.Id;
    doc.DocCreated = result.DocCreated;
    doc.DocCreatedBy = result.DocCreatedBy;
    doc.MergeFiles(result);
    documents.Save(doc);
}
else
{
    doc.Save();
}
MongoServer服务器=MongoServer.Create(connectionString);
MongoDatabase db=server.GetDatabase(数据库);
MongoCollection documents=db.GetCollection(“文档”);
var query=query.EQ(“DocID”,doc.DocID);
var结果=documents.FindOneAs(查询);
如果(结果!=null)
{
doc.Id=result.Id;
doc.DocCreated=result.DocCreated;
doc.DocCreatedBy=result.DocCreatedBy;
文档合并文件(结果);
单据保存(doc);
}
其他的
{
doc.Save();
}
我还使用官方的mongodb c#驱动程序

编辑: 这是堆栈跟踪。其实没什么意思

System.dll中发生类型为“System.StackOverflowException”的未处理异常 无法计算表达式,因为当前线程处于堆栈溢出状态

编辑2: 这里是指向我的文档类的链接。
您的else条件似乎不涉及任何与mongo相关的代码。doc.Save()调用DocumentData.Save将此(文档)作为参数传递。我只能猜测,在调用链的某个地方,它最终会回调do Document.Save。再次保存。

您的else条件似乎不涉及任何与mongo相关的代码。doc.Save()调用DocumentData.Save将此(文档)作为参数传递。我只能猜测,在调用链的某个地方,它最终会回调do Document.Save。

Twisternhra:这不是堆栈跟踪,而是错误消息。如果您在VisualStudio中执行此操作(并在调试模式下运行),则应该获得一个异常处理程序,其中包含“将异常详细信息复制到剪贴板”。粘贴你复制到那里的文本。我就是这么做的。VisualStudio没有告诉我发生了什么。事实上我知道问题出在哪里了。我不小心调用了错误的Save方法,这让我陷入了无尽的循环。出于某种原因,当我在某个位置设置断点时,它才进入循环。doc.Save()做什么?显示代码。同时设置一些断点,看看这段代码是否被反复调用(无限循环),因为这是最可能的原因。你能显示DocumentData类的代码吗?Twisternhra:这不是堆栈跟踪,这是错误消息。如果您在VisualStudio中执行此操作(并在调试模式下运行),则应该获得一个异常处理程序,其中包含“将异常详细信息复制到剪贴板”。粘贴你复制到那里的文本。我就是这么做的。VisualStudio没有告诉我发生了什么。事实上我知道问题出在哪里了。我不小心调用了错误的Save方法,这让我陷入了无尽的循环。出于某种原因,当我在某个位置设置断点时,它才进入循环。doc.Save()做什么?显示代码。同时设置一些断点,看看这段代码是否被反复调用(无限循环),因为这是最可能的原因。你能显示DocumentData类的代码吗?