1.0.3 • Published 7 years ago
mongoose-keyobj v1.0.3
Mongoose Key-Object data extractor
This plugin extends mongoose exec
function to extract data to object-orginized structure with keys list;
Usage:
require ('mongoose-keyobj'); // that's all!
var mongoose = require ('mongoose');
mongoose.models.MyUsersModel.find({'isEnabled': true}).keyobj(function (err, struct) {
/**
struct 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'},
}
}
*/
// then
struct.keys.map(function (id) {
console.log ( 'user', struct.obj[id] );
})
});
/** also supports sorting */
mongoose.models.MyUsersModel.find({'isEnabled': true}).sort('-_id').keyobj(function (err, struct) {
/**
struct is
{
keys: [5,4,3,2,1],
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'},
}
}
*/
});
/** if callback isn't exists, return the Promise */
let keyObj = await mongoose.models.MyUsersModel.find({'isEnabled': true}).keyobj();