Morphia:使用瞬态

时间:2014-02-24 18:31:08

标签: mongodb mongodb-query morphia transient

我有一个有3个文件的对象:

public class tags{

@Property("n")
private String name;
@Property("t")
private int type;
@Property("r")
private int rank;

.....
}

我正在使用morphia与我的MongoDB进行通信。

我想将al文件保存到数据库,但是在进行retreiving时我只想根据对象中的'name'和'type'字段进行查询。我尝试过使用@Transient Annotation,但它在加载/保存期间完全忽略了该字段。

2 个答案:

答案 0 :(得分:2)

这是一个非常常见的用例。

morphia wiki描述了使用过滤器或流畅的界面:https://github.com/mongodb/morphia/wiki/Query#wiki-filter

以下是一个例子:

ds.createQuery(tags.class).field('name').equal('idbentley').field('type').equal(1);

答案 1 :(得分:0)

如果您正在寻找有限的查询结果,https://github.com/mongodb/morphia/wiki/Query#wiki-ignoring-fields将涵盖以下内容:

ds.createQuery(tags.class).retrievedFields(true, "name", "type").get();

请注意,您应该只阅读这些有限的结果集或回写特定值。如果将它们保存回来,您将丢失所有未检索到的值。