0

我需要保存这个 JSON: {edbff2886c8ca7aa1bd02b092aa03930.zip=T001.zip}。它来自一个Map<String,String>. 为什么不可能?

com.mongodb.WriteConcernException: { "serverUsed" : "127.0.0.1:27017" , "ok" : 1 , "n" : 0 , "updatedExisting" : false , "err" : "The dotted field 'edbff2886c8ca7aa1bd02b092aa03930.zip' in 'filenameMap.edbff2886c8ca7aa1bd02b092aa03930.zip' is not valid for storage." , "code" : 57}

询问

public Validacao update(String id, Validacao validacao) {
        mongoCollection.update("{_id : #}", id)
                .with("{$set: #}", validacao);
        return validacao;
}
4

1 回答 1

1

这个:

 {edbff2886c8ca7aa1bd02b092aa03930.zip=T001.zip}

不是有效的 JSON 开头。您需要在字段名称和值周围加上引号。

然而,即使这样也不够。从MongoDB 文档

字段名称不能包含点(即 .)或空字符,并且它们不能以美元符号(即 $)开头。请参阅美元符号运算符转义以获取替代方法。

现在,根据您的字段名称可能包含的其他字符,您可能会在存储之前将所有点替换为其他字符 - 或者您可能需要某种转义机制。

于 2015-04-07T13:50:47.193 回答