我需要保存此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;
}
答案 0 :(得分:1)
此:
{edbff2886c8ca7aa1bd02b092aa03930.zip=T001.zip}
开始时不是有效的JSON。您需要围绕字段名称和值进行引用。
然而,即使这样也不够。来自MongoDB documentation:
字段名称不能包含点(即。)或空字符,并且它们不能以美元符号(即$)开头。有关替代方法,请参阅Dollar Sign Operator Escaping。
现在,根据您的字段名称可能包含的其他字符,您可能会在存储之前用其他内容替换所有点 - 或者您可能需要某种转义机制。