mongodb-build-info
Version:
Extract information from mongodb's buildInfo
91 lines (55 loc) • 1.82 kB
Markdown
# mongodb-build-info
Helpful functions to figure out if a connection is on Atlas, Atlas Data Lake,
Enterpise, or DocumentDB/CosmosDB.
# Usage
```js
const getBuildInfo = require('mongodb-build-info');
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('localhost:27017', function (err, client) {
const adminDB = client.db('test').admin();
let buildInfo;
adminDB.command({ buildInfo: 1 }, {}, parseBuildInfo);
adminDB.command({ getCmdLineOpts: 1 }, {}, parseCmdLineOpts);
function parseBuildInfo(err, res) {
if (err) console.log('Command failed, ', err);
buildInfo = res;
const { isDataLake, dlVersion } = getBuildInfo.getDataLake(buildInfo);
const isEnterprise = getBuildInfo.isEnterprise(buildInfo);
}
function parseCmdLineOpts(err, res) {
if (err) console.log('Command failed', err.message);
const { isGenuine, serverName } = getGenuineMongoDB(buildInfo, res);
}
});
```
## API
### getDataLake(buildInfo)
Returns an object:
**isDataLake**: boolean.
**dlVersion**: version of dataLake, a string.
### isEnterprise(buildInfo)
Returns a boolean.
### isAtlas(uri)
Returns a boolean.
### isLocalAtlas(count: (db: string, coll: string, query: Document) => Promise\<number\>)
Returns a Promise\<boolean\>.
### isAtlasStream(uri)
Returns a boolean.
### isLocalhost(uri)
Returns a boolean.
### isDigitalOcean(uri)
Returns a boolean.
### getGenuineMongoDB(buildInfo, cmdLineOpts)
Returns an object:
**isGenuine**: boolean.
**serverName**: name of the server (mongoDB, cosmosDB, or documentDB).
### getBuildEnv(buildInfo)
Returns an object:
**serverOs**: build's OS version (macOS, linux, windows etc.).
**serverArch**: build's architecture (e.g. x86_64).
# Installation
```
npm install -S mongodb-build-info
```
# License
Apache-2.0