mongodb:$each和$addToSet一次添加多個值

現在有個需求是管理員可以建立很多用戶組,管理員可以將自己的客戶批量移動到某個或多個組內進行管理.關聯關係體現在每個客戶信息內的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);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章