【问题标题】:Morphia : Using TransientMorphia:使用瞬态
【发布时间】:2014-02-24 18:31:07
【问题描述】:

我有一个包含 3 个字段的对象:

public class tags{

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

.....
}

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

我想将所有文件保存到数据库中,但在检索时我只想根据对象中的“名称”和“类型”字段进行查询。我曾尝试使用@Transient Annotation,但它在加载/保存期间完全忽略了该字段。

【问题讨论】:

  • 所以你想保存某些属性但不加载它们?
  • 我想把它们全部保存下来,也要把它们全部找回来。但是当我根据对象进行查询时,我只想根据“名称”和“排名”字段进行查询。

标签: mongodb mongodb-query morphia transient


【解决方案1】:

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

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

这是一个例子:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-19
      • 2012-09-05
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2011-03-07
      • 2013-06-01
      • 1970-01-01
      相关资源
      最近更新 更多