Spring数据mongodb嵌套数组elemmatch的标准

时间:2018-05-04 08:42:12

标签: mongodb spring-boot spring-data-mongodb

我正在尝试查询包含嵌套数组的mongo db文档。

这是我的豆子:

public class Invitation {
    @JsonIgnore
    private UUID id;

    @DBRef
    private Personne personne;

    private List<Boolean> disponibilites;

    private InvitationStatus status;

    @DBRef
    private Groupe groupe;

和Groupe: @Document(collection =“groupe”)

public class Groupe {
    @Id
    private String id;
    private String nom;
    private List<Personne> membres;
    @DBRef
    private Personne owner;

    public Groupe(){

    }

这是我试图查询的文件:

@Document(collection = "evenement")
public class Sondage {

    @Id
    private String id;
    private String nom;
   // @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date dateCreation;
    private Date dateExpiration;
    private List<Invitation> invitations;

所以这是我的问题:

Criteria finished = Criteria.where(SONDAGE_STATUS).is(SondageStatus.FINISHED);
Criteria isExpired = Criteria.where(DATE_EXPIRATION).gt(new Date());
// liste des personnes invitées dans un groupe
Criteria member = Criteria.where("invitations.groupe.membres").elemMatch(Criteria.where("id").is(personId));
Query bquery = new Query(new Criteria().andOperator(isExpired,finished,member));
bquery.with(sort);
bquery.fields().position("invitations.groupe.membres", 1);
List<Sondage> membersInvitationList = mongoTemplate.find(bquery, Sondage.class);

当我启动我的服务时,我收到此错误:org.springframework.data.mapping.model.MappingException:无效的路径引用invitations.groupe.membres.id!关联只能直接指向或通过他们的id属性!

有人可以帮我吗?

0 个答案:

没有答案