MongoDB在找到空白条目时显示错误

时间:2012-05-09 08:05:01

标签: php mongodb

我有一个项目,它搜索特定列中的特定条目,然后返回该列中包含该条目的所有文档。它几乎完美地工作,除非该输入字段为空时它会给出错误。让我试着说明一下。

我的数据库:

A|B|C|D
1|1|5|5
2|1| |6
3|2|7|7
4|2|8|8

我的PHP:

$query = array( "B" => 1);
$cursor = $collection->find( $query );

foreach ($cursor as $obj) {
    echo $obj["A"] . $obj["B"] . $obj["C"]  .$obj["D"] . "<br />";
}

我的输出是:

1155
21Notice: Undefined index: C6

我如何不给出任何错误。只需将其视为空场。我不确定这是否是一个常见的问题但是,我还是PHP的新手,也是MongoDB的新手。

2 个答案:

答案 0 :(得分:2)

在尝试使用它进行索引之前,使用isset()来确定数组中是否存在该键

foreach ($cursor as $obj) {
    echo $obj["A"] . $obj["B"]. (isset($obj["C"]) ? $obj["C"] : '' ) .$obj["D"]."<br />";
   //It will replace each blank with an ''
    }

答案 1 :(得分:0)

我认为这与mongodb无关。它的灵活文档架构如何工作。它不会返回该字段,因为密钥C在特定文档中不存在。

我没有任何PHP经验。但是我确定php会抛出错误,因为您正在尝试访问特定文档中不存在的密钥“C”。

但我相信如果您使用ODM (Object document mappers),可以轻松解决这些问题。它通过根据字段的数据类型分配默认值来解决问题。

希望有所帮助