C# 如何检查BsonDocument中是否存在密钥,或者是否使用Mongodb C驱动程序?
我使用C驱动程序从mongodb接收数据BsonDocument,如下所示:C# 如何检查BsonDocument中是否存在密钥,或者是否使用Mongodb C驱动程序?,c#,mongodb,.net-core,bsondocument,C#,Mongodb,.net Core,Bsondocument,我使用C驱动程序从mongodb接收数据BsonDocument,如下所示: { "_id":ObjectId("5c8730688a247070ca5e4a15"), "visitorEmail":"UnRegistered", "visitorName":"Guest040704", "agentEmail":"salman@blauda.com", "sessionid":"5c86e0f88a247070ca5e48e6", "createdOn":"2019-03-12T
{
"_id":ObjectId("5c8730688a247070ca5e4a15"),
"visitorEmail":"UnRegistered",
"visitorName":"Guest040704",
"agentEmail":"salman@blauda.com",
"sessionid":"5c86e0f88a247070ca5e48e6",
"createdOn":"2019-03-12T04:07:04.455Z",
"state":3,
"messages":[
],
"messageReadCount":0,
"lastMessage":{
"_id":ObjectId("5c8730688a247070ca5e4a16"),
"from":"MEHAK",
"to":"Guest040704",
"body":"Hello.. How may i Help You ?",
"cid":ObjectId("5c8730688a247070ca5e4a15"),
"date":"2019-03-12T04:07:04.455Z",
"type":"Agents",
"attachment":false,
"filename":null
},
"entertained":true,
"endingDate":"2020-01-15T05:47:37.170Z"
}
现在我想检查分配给_的密钥是否存在于该文档中。所以我试了一下:
convObject.TryGetValue("assigned_to", out isAssignedToExist);
Console.WriteLine("is assigned to ---- : "+isAssignedToExist);
无论密钥是否存在,我都会得到这样的错误,而不是结果:
ErorrSystem.Collections.Generic.KeyNotFoundException: Element 'assigned_to' not found.at
MongoDB.Bson.RawBsonDocument.GetValue(String name) at
sqs_processor.QueueService.ExecuteAsync(CancellationToken stoppingToken) in
D:\OfficeProjects\beelinksanalytics\Services\queueService.cs:line 100
用于查看密钥是否存在
bool assignedToExists=convObject.Containsassigned\u to
堆栈跟踪还表明您使用了GetValue,而不是您的问题所建议的TryGetValue
返回一个布尔值,该值指示检索是否成功,即:键存在并且该值被分配给out变量
这当然可以简化,我已经扩展了详细的代码
bool assignedToExists=convaluet.TryGetValueassigned_to,out BsonValue assignedtoValue;
如果被指派的话
{
Console.WriteLineAsigned to exists,值为{0},已分配给值;
}