当前位置: 首页 > 知识库问答 >
问题:

如何Morphia忽略额外的字段/元素?

秦凯定
2023-03-14

我是新手,当我使用morphia java mongodb时,我有一个问题。我有“新闻”数据库在mongodb中的收藏是“文章”的一个例子:

{
   "_id": ObjectId("54b77156d52fbb115abbc7ed"),
   "title": "test title",
   "thumbnail": "http://test.com/images/2015/01/15/kt169333-1.jpg",
   "imgsLoc": "/home/test/public/images/2015/01/15/kt169333-1.jpg",
   "sapo": "SampleSapo",
   "author": null,
   "content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
   "source": "http://example.com/news/test/1",
 ... [it has more about 30 fields after this line ...]
}
{
   "_id": ObjectId("54b77156d52fbb115abbc7ed"),
   "title": "test title",
   "thumbnail": "http://test.com/images/2015/01/15/kt169333-1.jpg",
   "imgsLoc": "/home/test/public/images/2015/01/15/kt169333-1.jpg",
   "sapo": "SampleSapo",
   "author": null,
   "content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
"textLength": NumberLong(441) <= new field
   "source": "http://example.com/news/test/1",
 ... [it has more about 30 fields after this line ...]
}
public class Article {
@Id
protected ObjectId id;
protected String content;
protected long textLength;

// Getset method

在不丢失数据的情况下更新集合的最快方法是什么?如何在将这个文章类映射到MongoDB时忽略额外的字段?

谢谢

共有1个答案

龙成仁
2023-03-14

尽管您没有在代码中显示它,但我假设您在文档上使用了保存。因此,您将它替换为您所拥有的属性,因此出现了“Missing”字段。

如果不想映射整个文档,则需要显式更新字段,而不是简单地调用Save。请参阅关于更新的Morphia文档。

 类似资料:
  • 我得到了一个XML响应,它经常变化(节点不断增加或减少)。在响应xml的每次更新之后,我的代码会中断,因为映射的Java类没有所有的文件。 谢了。

  • 问题内容: 我有一个Golang程序,该程序从命令行读取字符串参数,并将其传递给fmt.Sprintf函数。假设tmp_str是命令行中的目标字符串。 在某些情况下,该程序将传递完整的字符串,例如“ Hello Friends”,而不是字符串模板。.程序会惊慌并返回: 你好朋友%!(EXTRA string = world) 因此,如何忽略fmt.Sprintf的额外字段? 问题答案: 是的,您可

  • 我有一个DB中的人员列表,每个人都有一个CV字段,这是一个Spring中的多部分文件。我试图从数据库中获取所有的人,但忽略CV字段,因为我不想在使用getAllPerson函数时被下载。有可能?

  • 问题内容: 我有一些必须序列化为JSON的数据。我正在使用JSON.NET。我的代码结构与此类似: 问题是,我的JSON输出需要具有ON OR 或ON- 取决于所使用的字段(即不为null)。默认情况下,我的JSON如下所示: 我知道我可以使用,但这给了我如下所示的JSON: 我需要的是: 有没有简单的方法可以做到这一点? 问题答案: 是的,您需要使用。 但是由于结构是值类型,因此您需要将Fiel

  • 我有Solr 5.3.1,需要查询除某些字段之外的所有字段(我需要在某些字段中搜索而不是以这种方式检索字段[/?q=query&fl=field1,field2,field3]) 2.[以下解决方案有效,但需要更多时间] 3.我在data-config.xml中设置了indexed=“false”,它只忽略此字段中的搜索,但是当我搜索所有字段http://localhost:8983/solr/t

  • 问题内容: 在成功提交用户详细信息时,我从客户端获得了JSON。 由于未更新JSON中的某些元素,因此可以跳过。 在Go服务器端,我定义了一个等效的结构。 服务器成功将JSON字节编组到结构中。 但是对于未从客户端接收到的字段,默认情况下取消对字符串的硬编码解组为nil,对字符串数组解压缩为空数组。 例如,如果我获取json , 则不希望由元帅将其转换为。 简单起见,我希望它是 如何完全忽略该字段