好的我有这个(初学者再次)
// ADD FRIEND TO FRIEND LIST
Query<FriendList> query1 = mongo.createQuery(FriendList.class);
query1.field("lowerCaseUserName").equal(on.lowerCaseUserName);
query1.field("passwordHash").equal(on.passwordHash);
query1.field("uuid").equal(on.uuid);
UpdateOperations<FriendList>up1=mongo.createUpdateOperations(FriendList.class).add("friendList",buddyUuid,false);
我将朋友插入Array
。 “friendList”是String Array
希望能够立即实现删除。
我可以编写相同的代码并将“.add
”替换为removexxx ......吗?
我认为这是一个很好的想法,但也许不是:)
@Entity
public class FriendList {
@Id private ObjectId id;
public Date lastAccessedDate;
@Indexed(name="uuid", unique=true,dropDups=true)
private String uuid;
@Indexed(value=IndexDirection.ASC, name="lowerCaseUserName", unique=true,dropDups=true)
public String lowerCaseUserName;
public String passwordHash = "";
List<String> friendList;
public void setUuid(String uuid) {
this.uuid = uuid;
}
public List<String> getFriendList() {
return friendList;
}
public void insertFriend(String friend) {
this.friendList.add(friend);
}
// @PrePersist void prePersist() {
// lastAccessedDate = new Date();
// }
}
答案 0 :(得分:1)
Query<FriendList> query1 = mongo.createQuery(FriendList.class);
query1.field("lowerCaseUserName").equal(on.lowerCaseUserName);
query1.field("passwordHash").equal(on.passwordHash);
query1.field("uuid").equal(on.uuid);
UpdateOperations<FriendList>up1=mongo.createUpdateOperations(FriendList.class).removeAll("friendList",buddyUuid);
这应该从列表中删除buddyUuid
。
如果您可以保证friendList
包含唯一的UUID,那么您可以使用removeFirst || removeLast
方法。
希望这有帮助!