MongoDB存储和查询子对象

时间:2016-02-23 12:25:17

标签: mongodb morphia

我和同一个父亲有两个不同的对象。我想将它们存储在同一个集合中,但我希望能够分别检索每个对象。 例如,如果这些是我的对象: enter image description here

我想检索所有FirstChild对象而不检索任何SecondChild对象。

除了向父对象添加类型字段以外,还有什么方法可以检索它们吗?

2 个答案:

答案 0 :(得分:1)

假设第一个孩子和第二个孩子是存储在父对象的不同字段中的不同类型(父亲是第一个和第二个孩子的组合)

datastore.find(FatherObject.class).retrievedFields(false,"secondChildField")
除了secondChildField或

之外,

将获得所有内容

datastore.find(FatherObject.class).retrievedFields(true,"firstChildField")

只会带来firstChildField。

答案 1 :(得分:0)

创建查询时,请传入所需类型的类引用:datastore.createQuery(SecondChild.class)。默认情况下,Morphia跟踪文档的类类型,以便它可以按该类型进行过滤。