/*
How to export
* mongo is mongoshell command

mongo dbname --quiet mongodbIndexExporter.js > index.js
*/
let collectionNames = db.getCollectionNames();
let index_data = {'collections': []};

for (let i in collectionNames) {
    let collection = collectionNames[i];
    // let indexes = db[collection].getIndexes();
    let indexes;
    try {
      indexes = db[collection].getIndexes();
    } catch (err) { continue; }
    let json = { 'name': collection, 'indexes': [] };

    for (let j in indexes) {
        let idx = indexes[j];
        let doc = { 'name': idx['name'], 'key': idx['key'] };
        if ('expireAfterSeconds' in idx) {
            doc['expireAfterSeconds'] = idx['expireAfterSeconds'];
        }

        if ('background' in idx) {
            doc['background'] = idx['background'];
        }

        if ('unique' in idx) {
            doc['unique'] = idx['unique'];
        }

        if('collation' in idx) {
            doc['collation'] = {
                'locale': idx['collation']['locale'],
                'strength': idx['collation']['strength'],
            };
        }

        json['indexes'].push(doc)
    }
    index_data['collections'].push(json);
};
print('let indexes = ');
printjson(index_data);
print(';');