[skratchdot.]


MongoDB - distinct-types.js

Project Page
Source Code
Issues

Description:

Similar to the db.myCollection.distinct() function, distinctTypes() will return "types" rather than "values". To accomplish this, it adds the following function to the DBCollection prototype:

DBCollection.prototype.distinctTypes = function (
  keyString,
  query,
  limit,
  skip,
) {};

Usage:

// we hope this would return ['bson'] not ['bson','string']
db.users.distinctTypes('name');

// should return ['string']
db.users.distinctTypes('name.first');

// should return ['string']
db.users.distinctTypes('address.phone');

// only search documents that have { 'name.first' : 'Bob' }
db.users.distinctTypes('address.phone', { 'name.first': 'Bob' });

// only search the first 10 documents
db.users.distinctTypes('address.phone', {}, 10);

// only search documents 10-15
db.users.distinctTypes('address.phone', {}, 10, 5);

Caveats:

By design, distinctTypes() returns 'bson' rather than 'object'. It will return 'numberlong' rather than 'number', etc.

Installation:

Download: distinct-types.js

Option 1

Add this script to your .mongorc.js file.

See: http://www.mongodb.org/display/DOCS/Overview+-+The+MongoDB+Interactive+Shell#Overview-TheMongoDBInteractiveShell-.mongorc.js

Option 2

Start the shell after executing this script

mongo --shell distinct-types.js