我运行以下Mongo客户端命令:
db.Role.insert(
{
name: "Common",
alias: "COMMON",
description: "Common role"
}
);
这成功了。然后在我的JVM应用程序(使用Mongo/Morphia 1.0.1)内部运行以下命令:
System.out.println(datastore.find(Role.class)
.field("alias").equal("COMMON").toString())
将以下内容打印到控制台:
{"alias": "COMMON"}
因此,我的查询似乎只是查询我的Role
集合中的字段,其密钥为“alias
”,值为“COMMON
”。 但我不想要这个!我想要一个会返回整个“ Common ”Role
文档的查询(作为JSON字符串,未映射到POJO)。有什么想法吗?
答案 0 :(得分:1)
Morphia的行为是返回完整的对象。如果您不想在结果中包含它们,则需要明确ignore fields。
您的 .toString()
是否包含所有属性?
您确定要加载此文档吗?也许还有另一个 alias: "COMMON"
?
您错过了.get()
(或.asList()
,如果有多个):
System.out.println(datastore.find(Role.class)
.field("alias").equal("COMMON").get().toString())