В документации mongodb указано, что если не указывать коллбэк в MongoClient.connect, то нам автоматически возвращается Promise. Далее, collection.find({}) возвращает курсор, но, если обрабатывать курсор одним из методов и не указывать callback, то опять же можно сразу получить Promise. Вооружившись этим можно попробовать сделать так:
MongoClient.connect('mongodb://127.0.0.1:27017/snmp')
.then(db=>
	db.collection('collection1').find({}).explain()
	.then(explaination=>{
			//делаем что-либо с результатами первого запроса
			//например можно вернуть какие - либо данные:
		return data;
	})
	.then(data=> //если в верхнем then мы вернули некие данные (data) - они передаются сюда
		db.collection('collection2').find({}).explain()
		.then(explaination=>{
				//можно закрыть соединение
				db.close();
				//также делаем что-либо с результатами второго запроса
				//можно скрестить результаты первого запроса (data) и (explaination) и вернуть результат
				return result;
		})
   )
)