我有一个类似以下的JSON:
{ "_id" : "1", "_class" : "com.model.Test", "itemList" : [ { "itemID" : "1", "itemName" : "Foo", "resources" : [ { "resourceID" : "1", "resourceName" : "Foo Test1", }, { "resourceID" : "2", "resourceName" : "Foo Test2", } ] } ] }
我需要能够更新资源列表。 我已经做了以下操作:
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.put("id", "1");
BasicDBObject updateCommand = new BasicDBObject();
List<Resource> resources = populateResources();//Fetch a new list of Resources
updateCommand.put("$push", new BasicDBObject("resources", resources));
MongoOperations mongoOperations = mongoConfiguration.getMongoTemplate();
DBCollection db = mongoOperations.getCollection("myCollection");
db.save(updateCommand);
我遇到了以下错误:
当我使用以下内容时:java.lang.IllegalArgumentException: 存储在数据库中的字段不能以 '$' 开头(不良密钥:'$push')
db.update( updateQuery, updateCommand, true, true );
我收到了以下异常:
我尝试过: db.updateMulti(updateQuery, updateCommand); 我既没有得到任何异常,也没有进行任何文档更新。java.lang.IllegalArgumentException: 无法序列化类com.model.Test
那么我错过了什么吗!!