1.0.0 • Published 7 years ago

keyobj v1.0.0

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Key-Object collection convertor

This function transform collection object-orginized structure with keys list;

Usage:

import keyobj from 'keyobj'; // that's all!
/*
usage: keyobj(data, [key='_id', [group=false]]);
*/
let data = await mongoose.models.MyUsersModel.find({'isEnabled': true});
let result = keyobj(data); // default key is _id
/**
    result is
    {
        keys: [1,2,3,4,5],
        obj: {
            1: {_id: 1, username: 'John'},
            2: {_id: 2, username: 'Mary'},
            3: {_id: 3, username: 'Kevin'},
            4: {_id: 4, username: 'Vladimir'},
            5: {_id: 5, username: 'Stefan'},
        }
    }
*/


let result = keyobj(data, 'username'); // convert with another key
/**
    result is
    {
        keys: ['John','Mary','Kevin','Vladimir','Stefan'],
        obj: {
            'John': {_id: 1, username: 'John'},
            'Mary': {_id: 2, username: 'Mary'},
            'Kevin': {_id: 3, username: 'Kevin'},
            'Vladimir': {_id: 4, username: 'Vladimir'},
            'Stefan': {_id: 5, username: 'Stefan'},
        }
    }
*/

let result = keyobj(data, 'username', true); // convert with another key and group to collection
/**
    result is
    {
        keys: ['John','Mary','Kevin','Vladimir','Stefan'],
        obj: {
            'John': [{_id: 1, username: 'John'}],
            'Mary': [{_id: 2, username: 'Mary'}],
            'Kevin': [{_id: 3, username: 'Kevin'}],
            'Vladimir': [{_id: 4, username: 'Vladimir'}],
            'Stefan': [{_id: 5, username: 'Stefan'}],
        }
    }
*/

let result = keyobj(data, 'username', '_id'); // convert with another key and group to structure
/**
    result is
    {
        keys: ['John','Mary','Kevin','Vladimir','Stefan'],
        obj: {
            'John': {1: {_id: 1, username: 'John'}},
            'Mary': {2: {_id: 2, username: 'Mary'}},
            'Kevin': {3: {_id: 3, username: 'Kevin'}},
            'Vladimir': {4: {_id: 4, username: 'Vladimir'}},
            'Stefan': {5: {_id: 5, username: 'Stefan'}},
        }
    }
*/
1.0.0

7 years ago