如何在更新mongodb中的外部arraylist时在内部arraylist中插入值?

Jij*_*mar 5 java spring mongodb mongorepository mongotemplate

我正在使用Spring MongoDB,现在我遇到了将值插入到arraylist中的问题.这是我的POJO类结构......

public class Search implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    private String id;
    private String searchkey;
    private ArrayList<Lead> leads;
 }
Run Code Online (Sandbox Code Playgroud)

"领导"是另一个POJO类,就像......

public class Lead implements Serializable {

private static final long serialVersionUID = 1L;
private String leadtext;
private String address;
private ArrayList<History> trackrecords;
}
Run Code Online (Sandbox Code Playgroud)

"历史"是另一个POJO类,它就像..

public class History implements Serializable {

private static final long serialVersionUID = 1L;
private String id;
private String changedfield;
private String oldvalue;
private String newvalue;
}
Run Code Online (Sandbox Code Playgroud)

问题是我想在更新一个潜在客户时将数据插入到trackrecords中.有可能在春天mongotemplate .. ?? 如果可能的话请帮助我.先感谢您

Wiz*_*ard 4

请尝试这个。

假设leadtext可以lead唯一地定位该元素。

Query query = new Query().addCriteria(Query.where("searchkey").is(searchkey).and("leads.leadtext").is(leadtext));
Update update = new Update().push("leads.$.trackrecords", trackrecord);
mongoTemplate.updateFirst(query, update, Search.class);
Run Code Online (Sandbox Code Playgroud)