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 に答える