npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mongomath

v1.1.14

Published

smart analyser mongodb with mongoose

Downloads

1,006

Readme

mongomath

Documentation en ligne : https://galaxy-docs.mongomath.com https://account.mongodb.com/account/

Introduction

Le module mongomath fait partie du projet Galaxy, un ensemble de projets visant à fournir des outils performants pour le développement. mongomath est un outil d'analyse statistique de données MongoDB, conçu pour aider les développeurs à obtenir des statistiques avancées sur leurs collections de données.

Si vous souhaitez contribuer au projet, contactez-nous à [email protected].


Fonctionnalité de selfloading

Chaque fonction du module mongomath prend un paramètre selfloading, un booléen qui contrôle la gestion automatique de la connexion à la base de données.

  • selfloading = true : La connexion est automatiquement établie et fermée à chaque appel de fonction.
  • selfloading = false : L'utilisateur doit gérer la connexion et la déconnexion manuellement.

Paramètres de connexion et d'analyse

| Paramètre | Type | Description | | ------------- | ------- | ---------------------------------------------------------------- | | selfloading | Boolean | Active la connexion/déconnexion automatique si défini à true. | | uri | String | URI de connexion à MongoDB. | | params | Object | Contient les paramètres pour des calculs spécifiques de données. | | collection | String | Nom de la collection cible pour l'analyse. | | field1 | String | Premier champ pour les statistiques croisées. | | field2 | String | Deuxième champ pour les statistiques croisées. | | options | Object | Options spécifiques pour la collecte de statistiques détaillées. |


Classes et méthodes principales

1. connect()

Établit la connexion à MongoDB manuellement.

const mongoMath = new MongoMath("mongodb://localhost:27017");
await mongoMath.connect();

2. disconnect()

Ferme la connexion à MongoDB manuellement.

await mongoMath.disconnect();

3. dataAnalyzer(params, selfloading)

Analyse complète de la base de données.

  • params : Object, paramètres d'analyse.
  • selfloading : Booléen.
const analysis = await mongoMath.dataAnalyzer({ collection: "users" }, true);

4. getDatabaseInfo(options, selfloading)

Récupère les informations de base sur la base de données.

  • options : Object, options d'analyse.
  • selfloading : Booléen.
const dbInfo = await mongoMath.getDatabaseInfo({}, true);

5. getDetailedCollectionStats(selfloading)

Obtient les statistiques détaillées des collections.

const collectionStats = await mongoMath.getDetailedCollectionStats(true);

6. analyzeDataDistribution(collectionName, selfloading)

Analyse la distribution des données d’une collection spécifique.

const distribution = await mongoMath.analyzeDataDistribution("users", true);

7. analyzeFieldStatistics(collectionName, selfloading)

Analyse les statistiques de champ dans une collection.

const fieldStats = await mongoMath.analyzeFieldStatistics("users", true);

8. getPerformanceMetrics(selfloading)

Récupère les métriques de performance de la base de données.

const metrics = await mongoMath.getPerformanceMetrics(true);

9. getStorageAnalysis(selfloading)

Obtient l'analyse du stockage de la base de données.

const storageAnalysis = await mongoMath.getStorageAnalysis(true);

10. alyzeDatabaseComplete(options, selfloading)

Analyse complète de la base de données.

const completeAnalysis = await mongoMath.alyzeDatabaseComplete({}, true);

11. calculateStatistics(params, selfloading)

Calcule des statistiques générales pour une collection.

const stats = await mongoMath.calculateStatistics(
  { collection: "users" },
  true
);

12. alyzeDatabaseComplete(collection, field1, field2, selfloading)

Calcule les statistiques croisées entre deux champs d'une collection.

  • collection : Nom de la collection cible.
  • field1 : Nom du premier champ pour les statistiques croisées.
  • field2 : Nom du second champ pour les statistiques croisées.
  • selfloading : Booléen, permet la gestion automatique de la connexion et déconnexion si défini à true.

Exemple d'utilisation

const crossFieldStats = await mongoMath.alyzeDatabaseComplete(
  "users",
  "age",
  "salary",
  true
);

Cette méthode est particulièrement utile pour analyser les corrélations entre deux champs d'une même collection. Si selfloading est activé, mongoMath établit automatiquement la connexion et la ferme après l'exécution de l'analyse, offrant ainsi une gestion simplifiée de la connexion.


Logger

Le module mongomath inclut un logger pour surveiller les activités de connexion, de déconnexion et d'analyse. Cela permet un suivi des opérations pour un débogage plus simple et une meilleure transparence.

Utilisation du Logger

Le logger enregistre :

  • Connexion/Déconnexion : lorsqu'une connexion est établie ou fermée.
  • Analyses et requêtes : chaque analyse de données est suivie d'un enregistrement des paramètres utilisés.
  • Erreurs : les erreurs rencontrées sont également enregistrées.

Exemple d'un log de connexion automatique :

[INFO] - Connection established to MongoDB
[INFO] - Data analysis started for collection: users
[INFO] - Data analysis completed for collection: users
[INFO] - Connection closed to MongoDB

Gestion des erreurs

Le module mongomath gère les erreurs et envoie des messages explicites pour aider à la résolution des problèmes.

Types d'erreurs

  • Erreur de connexion : Se produit si selfloading est défini à false mais qu'aucune connexion n’a été établie.
  • Erreur d'analyse : Toute erreur survenant lors de l'analyse des données (ex. champ ou collection inexistante).
  • Erreur de déconnexion : Peut survenir si la connexion n'est pas active.

Exemples de gestion des erreurs

try {
  const stats = await mongoMath.calculateStatistics(
    { collection: "nonexistent" },
    true
  );
} catch (error) {
  console.error("Error during analysis:", error.message);
}

Exemples d'utilisation

advice:

replace this: mongodb://localhost:27017/test by your own mongodb URI.If you don't have available mongodb databse instaled locally , you can use mongodb atlas create your account here : [https://account.mongodb.com/account/]

.

Pour analyser plusieurs statistiques sans gérer manuellement les connexions :

const DatabaseAnalyzer = require("mongoMath");

const analyzer = new DatabaseAnalyzer({
  uri: "mongodb://localhost:27017/test",
});

async function dbAnalyser() {
  try {
    // without connection
    const results = await analyzer.analyzeDatabaseComplete(true);
    console.log(results);
  } catch (error) {
    console.error("An error occurred:", error);
  } finally {
    await analyzer.disconnect();
  }
}

dbAnalyser();

Si vous souhaitez gérer manuellement la connexion et la déconnexion :

const DatabaseAnalyzer = require("mongoMath");

const analyzer = new DatabaseAnalyzer({
  uri: "mongodb://localhost:27017/test",
});

async function dbAnalyser() {
  try {
    //openning
    await analyzer.connect();
    //end openning
    const results = await analyzer.analyzeDatabaseComplete();
    console.log(results);
  } catch (error) {
    console.error("An error occurred:", error);
  } finally {
    //closing
    await analyzer.disconnect();
    //closing
  }
}

dbAnalyser();

À propos de Galaxy et de mongomath

Le projet Galaxy vise à créer un écosystème innovant pour les développeurs et les utilisateurs finaux. Notre mission est de fournir des outils de qualité, pour des applications modernes et performantes. mongomath est l'un des premiers produits de Galaxy, et nous invitons toute contribution pour développer davantage cet outil.


© 2024 galaxy.MongoMath. Tous droits réservés.