use*_*824 6 php cursor mongodb bson
将MongoCursor转换为PHP时,我使用此脚本.这是在StackOverflow SO中提出的
使用upper方法,结构相同,但_id是使用较低的脚本,产生下面包含的结果.
不幸的是,这导致实际对象嵌入到具有Mongo的_id的数组中.像这样 :
`4eefa79d76d6fd8b50000007 = {
"_id" = {
"$id" = 4eefa79d76d6fd8b50000007;
};
longText = "Error Description";
nCode = dee29fd7e15ce4ab2d3f7dfa7c5d8fc44b27501ad00908771128c920ef276154;
nStatus = Process;
nText = "E12345";
nVType = Type1;
pId = {
"$id" = 4eefa79676d6fd8b50000003;
};
pushDate = "2011-12-20+06%3A07%3A41";
updateFlag = 1;
};`
Run Code Online (Sandbox Code Playgroud)
由于我将此对象传递给另一个服务以进行处理,因此不知道_id.
如何说服PHP驱动程序正确解析对象?
基本上我所做的就是这个.
return json_encode(iterator_to_array($cursor));
Run Code Online (Sandbox Code Playgroud)
但这创造了上述对象,而不是我需要的对象.
我以这种方式解决了它.
$i=0;
foreach($cursor as $item){
$return[$i] = array(
'_id'=>$item['_id'],
'nCode'=>$item['nCode'],
'pId'=>$item['pId'],
'nText'=>$item['nText'],
'longText'=>$item['longText'],
'nStatus'=>$item['nStatus'],
'nVType'=>$item['nVType'],
'pushDate'=>$item['pushDate'],
'updateFlag'=>$item['updateFlag'],
'counter' => $i
);
$i++;
}
Run Code Online (Sandbox Code Playgroud)
return json_encode($ return);
| 归档时间: |
|
| 查看次数: |
6210 次 |
| 最近记录: |