現在有個需求是管理員可以建立很多用戶組,管理員可以將自己的客戶批量移動到某個或多個組內進行管理.關聯關係體現在每個客戶信息內的gruoIDs鍵上,維護一個數組存儲所屬組的ID
1.批量將多用戶移動到多個組內:
db.applyUsers.update({"_id":"123"},{"addToSet":{"groupIDs":{"$each":["id1","id2","id3"]}}})
如果不使用$each會將移動後的數組這個整體作爲groupIDs的一個元素
以下是使用spring-mongotemplate實現上述過程的代碼,需要注意低版本的spring-mongodb以及mongodb可能不支持
/**
* 批量更新用戶信息組信息
* @param userIds
* @param groupIDs
*/
public void batchUpdateUser(Object[] userIds,Object[] groupIDs) {
Criteria c = Criteria.where("_id").in(userIds);
Update update = new Update();
Update.AddToSetBuilder ab = update.new AddToSetBuilder("groupIDs");
update = ab.each(groupIDs);
mongoTemplate.updateMulti(new Query(c),update,SystemContent.COLLECTION_NAME_APPLYUSER);
}