我想在边界框内检索数据((ra_min,dec_min),(ra_max,dec_max))。 谁能告诉我下面有什么问题?
PHP代码和数据结构如下。感谢......结构:
{
"filter": "E",
"loc": {
"dec": 130,
"ra": 15
},
"path": "00015+00130E.jpeg"
},
{
"filter": "Z",
"loc": {
"dec": 130,
"ra": 15
},
"path": "00015+00130Z.jpeg"
},
代码:
$lowerLeft = array("ra"=>$RA_min - $ra_offset, "dec"=>$DEC_min - $dec_offset);
$upperRight= array("ra"=>$RA_max + $ra_offset, "dec"=>$DEC_max + $dec_offset);
$cond = array("loc" => array('$within' => array('$box' => $lowerLeft, $upperRight)));
$cursor = $collection->find($cond);
答案 0 :(得分:0)
我认为问题出现在$ box使用
$ box用法示例:
$cursor = $collection->find( array( 'loc'=>array('$within'=> array('$box'=>array(array(0,0), array(100,100) ) ) ) ));
这将返回包含点的所有文档:[0,0],[0,100],[100,0]和[100,100]。
使用print_r($ cond);在find()之前;用于查看显示问题所在的数组值