Mongo数据库无效的BSON字段名称异常

时间:2016-01-04 09:44:46

标签: java mongodb

我试图遵循这个How to use dot in field name?。但它的结果如同图片。还有一个空间: -

enter image description here

$objPHPExcel = new PHPExcel();  

 ......

    $i = 0;
    foreach ($arr as $key => $value){
        $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i).'1', $key);
        $objPHPExcel->getActiveSheet()->SetCellValue(PHPExcel_Cell::stringFromColumnIndex($i+1).'2', $value);
        $i++;
    }

   .....

例外: - 无效的BSON字段名称photographs.inner_fields;嵌套异常是java.lang.IllegalArgumentException:无效的BSON字段名称为photographs.inner_fields。

我如何使用点“。”在字段名称中。我必须使用。因为我正在使用一些第三方api,我没有选择替换像[dot]这样的东西。请建议我?

2 个答案:

答案 0 :(得分:6)

在MongoDB中,字段名称不能包含点(。)字符,因为它是点符号语法的一部分,请参阅documentation

您使用的是哪种第三方API?你确定你需要一个点吗?解析JSON时通常使用点,而您的第三方API不需要它。

答案 1 :(得分:1)

那么,第三方api是否正在构建密钥(其中包含句点),并将其保存到MongoDB中?

我建议您在所述API:s跟踪器中打开错误代码。

如果不是这种情况,请在持久性代码中的某个位置对周期进行编码 - 并在上升过程中对其进行解码。