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

Java Morphia如何忽略额外字段/元素?,java,mongodb,morphia,Java,Mongodb,Morphia,我是新手,当我使用morphia java mongodb时,我遇到了一个问题。 我在mongodb中有“新闻”数据库,收集的是“文章” 示例文章: { "_id": ObjectId("54b77156d52fbb115abbc7ed"), "title": "test title", "thumbnail": "http://test.com/images/2015/01/15/kt169333-1.jpg", "imgsLoc": "/home/test/publi

我是新手,当我使用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 ...]
}
我的工作只需要获取新文章的内容并保存textLength字段。 这样说:

{
   "_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 ...]
}
}

为什么其他领域会消失

更新集合而不丢失数据的最快方法是什么? 如何在将此文章类映射到mongodb时忽略额外字段


谢谢

即使您没有在代码中显示它,我假设您正在对文档进行保存。因此,将其替换为您拥有的属性,从而替换为“缺少”字段


如果不想映射整个文档,则需要显式更新字段,而不是简单地调用save。请参见。

是。我不想映射整个文档,我尝试使用更新查询,但我有相同的结果,所有其他字段都丢失了。只有
id
content
textLength
-我在Article类中声明的属性被保留-其他属性丢失。这是代码更新查询Query=ds.createQuery(Article.class).field(“id”).equal(Article.getId());UpdateOperations ops=ds.createUpdateOperations(Article.class).set(“textlength”,Article.getContent.length());更新(查询、操作);奇怪。但是,如果只想设置一个字段,为什么还要使用Morphia呢?Java驱动程序将是更好的解决方案。Java驱动程序()的写问题与Morphia中的字段映射有什么关系?
public class Article {
@Id
protected ObjectId id;
protected String content;
protected long textLength;

// Getset method