"use strict"; module.exports = function(db, module) { var helpers = module.helpers.mongo; module.setAdd = function(key, value, callback) { callback = callback || helpers.noop; if(!Array.isArray(value)) { value = [value]; } value.forEach(function(element, index, array) { array[index] = helpers.valueToString(element); }); db.collection('objects').update({ _key: key }, { $addToSet: { members: { $each: value } } }, { upsert: true, w: 1 }, function(err) { callback(err); }); }; module.setRemove = function(key, value, callback) { callback = callback || helpers.noop; if(!Array.isArray(value)) { value = [value]; } value.forEach(function(element, index, array) { array[index] = helpers.valueToString(element); }); db.collection('objects').update({_key: key}, {$pullAll: {members: value}}, callback); }; module.isSetMember = function(key, value, callback) { value = helpers.valueToString(value); db.collection('objects').findOne({_key:key, members: value}, function(err, item) { callback(err, item !== null && item !== undefined); }); }; module.isSetMembers = function(key, values, callback) { for (var i=0; i