【发布时间】:2017-03-06 22:24:08
【问题描述】:
我使用聚合 $lookup 加入两个集合。
"users"
{
"_id" : ObjectId("5984f8c454b1fd6926c324fd"),
"email" : "administrator@hotmail.com",
"userId" : "uid",
"userName" : "admin"
}
"userinfo"
{
"_id" : ObjectId("59d82812b63f1c31cf906003"),
"userId" : "uid",
"phone" : "000000000"
}
我在“用户”实体类中使用@Reference(idOnly = true) 来引用第二个集合。我只想检索特定字段,例如:“email”、“userId”、“phone”。
Query<Users> query = usersDAO.createQuery()
.retrievedFields(true,"email", "userId", "phone")
它给我一个运行时错误,无法识别“电话”字段,因为它来自引用的集合“用户信息”。我尝试指定“userinfo.phone”等,但没有成功。当“电话”字段从查询中删除时,它工作正常。 实现这一目标的正确方法是什么?
谢谢!
【问题讨论】: