"use strict"; var winston = require('winston'); module.exports = function(db, module) { var helpers = module.helpers.mongo; module.setObject = function(key, data, callback) { callback = callback || helpers.noop; if (!key) { return callback(); } db.collection('objects').update({_key: key}, {$set: data}, {upsert: true, w: 1}, function(err) { callback(err); }); }; module.setObjectField = function(key, field, value, callback) { callback = callback || helpers.noop; if (!field) { return callback(); } var data = {}; field = helpers.fieldToString(field); data[field] = value; module.setObject(key, data, callback); }; module.getObject = function(key, callback) { if (!key) { return callback(); } db.collection('objects').findOne({_key: key}, {_id: 0, _key: 0}, callback); }; module.getObjects = function(keys, callback) { if (!Array.isArray(keys) || !keys.length) { return callback(null, []); } db.collection('objects').find({_key: {$in: keys}}, {_id: 0}).toArray(function(err, data) { if (err) { return callback(err); } var map = helpers.toMap(data); var returnData = []; for (var i=0; i