gpt4 book ai didi

c++ - 断言:13111:字段 3 的类型错误!= 4 - MongoDB C++ 驱动程序

转载 作者:行者123 更新时间:2023-11-30 04:16:25 25 4
gpt4 key购买 nike

在我的 MongoDB 数据库中,我有这种形式的文档:

   {    "timestamp" : "2012-01-15T17:56:14.85",
"Event" : [
{
"id" : "1851236846",
"qualifier_id" : "209"
},
{
"id" : "378258775",
"qualifier_id" : "57",
"value" : "1"
}
]
}

{ "timestamp" : "2012-01-15T16:06:09.378"

}

其中有些包含数组事件,有些则不包含。

当我尝试使用 C++ MongoDB 驱动程序 2.4 处理数据时:

 while (cursor->more()) { 
BSONObj bo = cursor->next();
cout << "timestamp: " << bo.getStringField("timestamp") << std::endl;

if(bo.hasElement("Event")) {
cout<<"HERE"<< endl;

std::vector<BSONElement> be = bo.getField("Event").Array(); // ---> at this line breaks!!

for (unsigned int j = 0; j < be.size(); j++) {

BSONObj bo2 = be[j].embeddedObject();
cout << "Qualifier ID: " << bo2.getStringField("qualifier_id") << std::endl;
cout << "Value: " << bo2.getStringField("value")<< std::endl;

}
}

我收到这个错误:

  timestamp: 2012-01-15T16:06:06.529
HERE
Qualifier ID: 15
Value:

Qualifier ID: 56
Value: Back

timestamp: 2012-01-15T16:06:07.560
HERE
Qualifier ID: 212
Value: 14.6

Qualifier ID: 141
Value: 89.2

Qualifier ID: 213
Value: 5.9

Qualifier ID: 56
Value: Back

Qualifier ID: 140
Value: 46.7

timestamp: 2012-01-15T16:06:09.378
HERE
Sun Jul 21 20:06:16.974 Assertion: 13111:wrong type for field (Event) 3 != 4
caught wrong type for field (Event) 3 != 4

总而言之,条件 bo.hasElement("Event") 始终为真。(???) 程序在这里停止:

   std::vector<BSONElement> be = bo.getField("Event").Array();

当数组事件没有成员时。

请帮忙!

最佳答案

我可以帮助您了解有关错误的更多信息:http://docs.mongodb.org/manual/reference/operator/type/#op._S_type3 => 对象4 => 数组

关于c++ - 断言:13111:字段 3 的类型错误!= 4 - MongoDB C++ 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com