lodash-unwind
Very simple unwind extension for lodash. And it's compatible with mongoose doc.
Install
npm install --save lodash-unwind
Usage
Arguments
collection(Array|Object)
- The collection or object to process.path(string)
- The property path to unwind.[options={}](object)
- The option object.[options.ignoreNonArray=true](boolean)
- Specify whether ignore non-array element/property, default=true.[options.wrapAsArray=false]
- Specify whether wrap unwinded value in array.
Returns
(Array)
- Returns new unwinded collection.
Sample
Unwind normal collection
const unwind = const data = a: 1 2 id: 'a1' a: 3 4 id: 'a2' const output = // [// {// a: 1,// id: 'a1'// },// {// a: 2,// id: 'a1'// },// {// a: 3,// id: 'a2'// },// {// a: 4,// id: 'a2'// }// ]
Unwind collection with nested property
const unwind = const data = a: inner: 1 2 id: 'a1' a: inner: 3 4 id: 'a2' const output = // [// {// a: { inner: 1 },// id: 'a1'// },// {// a: { inner: 2 },// id: 'a1'// },// {// a: { inner: 3 },// id: 'a2'// },// {// a: { inner: 4 },// id: 'a2'// }// ]
Unwind object
const unwind = const data = a: 1 2 id: 'a1'const output = // [// {// a: 1,// id: 'a1'// },// {// a: 2,// id: 'a1'// }// ]
Unwind with wrapAsArray=true
const unwind = const data = a: 1 2 id: 'a1'const output = // [// {// a: [1],// id: 'a1'// },// {// a: [2],// id: 'a1'// }// ]
Use unwind as module of lodash
const _ = injected: true const data = a: 1 2 id: 'a1' a: 3 4 id: 'a2' // Use unwind as part of lodashconst output = _