Maison développement back-end Tutoriel C#.Net Explication détaillée de la façon d'utiliser MongoDB dans .Net

Explication détaillée de la façon d'utiliser MongoDB dans .Net

Aug 14, 2017 am 11:45 AM
.net mongodb 使用方法

J'ai fait des recherches sur mongodb récemment. J'ai effectué une recherche en ligne et j'ai découvert que les articles sur l'utilisation de mongodb dans .net sont soit des versions antérieures du pilote, soit contiennent très peu d'informations, j'ai donc écrit un essai pour les enregistrer en détail. comment utiliser mongodb dans .Net. Les amis qui ont besoin d'un didacticiel sur l'utilisation de MongoDB peuvent s'y référer ci-dessous.

Qu'est-ce que MongoDB

MongoDB est basé sur le stockage de documents (pas de tables) et est un croisement entre une base de données relationnelle et une base de données non relationnelle base de données Les produits parmi eux sont les plus riches en fonctionnalités parmi les bases de données non relationnelles et les plus similaires aux bases de données relationnelles. La structure de données qu'il prend en charge est très lâche et est un format bson similaire à json, il peut donc stocker des types de données plus complexes. La plus grande caractéristique de Mongo est que le langage de requête qu'il prend en charge est très puissant. Sa syntaxe est quelque peu similaire à un langage de requête orienté objet. Il peut presque implémenter la plupart des fonctions similaires aux requêtes à table unique dans les bases de données relationnelles, et il prend également en charge l'indexation. de données. Mongo résout principalement le problème de l’efficacité de l’accès aux données massives. Étant donné que Mongo prend principalement en charge le stockage massif de données, Mongo est également livré avec un excellent système de fichiers distribué, GridFS, qui peut prendre en charge un stockage massif de données. Mongo est très populaire car il peut prendre en charge des structures de données complexes et dispose de puissantes fonctions de requête de données.

BSON est le format de stockage de données de MongoDB. Tout le monde connaît JSON, mais qu'est-ce que BSON ? BSON est basé sur le format JSON. La principale raison du choix de JSON pour la transformation est la polyvalence de JSON et les caractéristiques sans schéma de JSON.

BSON a les caractéristiques suivantes

1 Vitesse de parcours plus rapide

Pour le format JSON en général. En parlant, une structure JSON trop volumineuse entraînera un parcours très lent des données. Dans JSON, si vous souhaitez ignorer un document pour la lecture des données, vous devez numériser le document et effectuer une correspondance de structure de données gênante, telle que la correspondance entre crochets. Une amélioration majeure de BSON vers JSON est qu'il stockera la longueur de chaque élément. dans l'en-tête de l'élément, de sorte qu'il vous suffit de lire la longueur de l'élément pour rechercher directement le point de lecture spécifié.

2. Opération plus simple

Pour JSON, le stockage des données n'est pas typé. Par exemple, vous souhaitez modifier une valeur de base de 9 à 10, car de Un caractère devient. deux, donc tout le contenu qui le suit devra peut-être être reculé d'une position. En utilisant BSON, vous pouvez spécifier cette colonne comme colonne numérique. Ensuite, peu importe que le nombre passe de 9 à 10 ou 100, nous modifierons uniquement le bit où le nombre est stocké, ce qui n'entraînera pas une augmentation de la longueur totale des données. devenir plus grand. Bien sûr, dans MongoDB, si le nombre passe d'un entier à un entier long, la longueur totale des données augmentera encore.

3. Ajout de types de données supplémentaires

JSON est un format d'échange de données très pratique, mais ses types sont relativement limités. BSON ajoute le type de données "byte array" sur cette base. Cela élimine le besoin de convertir les données binaires en base64 avant de les enregistrer au format JSON. La charge de calcul et la taille des données sont considérablement réduites. Bien sûr, parfois, BSON n'a pas d'avantage en termes d'espace par rapport à JSON en raison du concept de type.

Installation de MongoDB sous Windows

L'installation de MongoDB est très simple Après avoir défini le chemin d'installation, restez Suivant jusqu'à ce que l'installation soit terminée. .Le plus gros piège est Pour l'installation du service MongoDB, parlons en détail de certaines opérations de configuration après l'installation de MongoDB

1. Créez le chemin de la base de données (répertoire de données), le chemin du journal (répertoire des journaux) et le fichier journal. (fichier mongo.log) dans le répertoire racine), chemin de configuration (répertoire conf) Mon chemin d'installation est : D:Program Filesmongodb

2 Créez le fichier de configuration mongo.conf dans le répertoire conf. est la suivante :


logpath=D:\Program Files\mongodb\logs\mongodb.log #日志输出文件路径

logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件

journal=true #启用日志文件,默认启用

quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false

port=27017 #端口号 默认为27017

auth=true #启用验证 需要用户名密码
Copier après la connexion

Après avoir terminé les deux étapes ci-dessus, vous pouvez démarrer MongoDB

Exécutez la commande d'entrée CMD (notez le chemin de mongod )


mongod --config " D:\Program Files\mongodb\data \conf\mongo.conf"
Copier après la connexion

3. Créez et démarrez le service MongoDB

Ne serait-ce pas assez gênant si vous suivez la troisième étape à chaque fois ? commande suivante pour créer et démarrer le service MongoDB, et vous pouvez gérer MongoDB via le service Windows Démarré et fermé


mongod --config " D:\Program Files\mongodb\data \conf\mongo.conf" --install --serviceName "MongoDB"

net start MongoDB
Copier après la connexion

Pour tester si cela réussit, vous pouvez. entrez http://localhost:27017/ dans le navigateur. Si l'image suivante apparaît, l'installation du service est réussie

Si vous devez désinstaller le service MongoDB et l'exécuter. dans CMD


mongod.exe --remove --serviceName "MongoDB"
Copier après la connexion

Une fois les préparatifs préliminaires terminés, vous pouvez commencer le code

Comment utiliser MongoDB dans . net

Introduisez d'abord MongoDB.Bson.dll et MongoDB.Driver.dll dans le projet, MongoDB.Driver.Core.dll J'utilise la version 2.0. Maintenant, de nombreux articles présentent l'utilisation de. version 1+. C'est aussi le but de la rédaction de cet article. Après avoir présenté la DLL du pilote, vous pouvez commencer à coder

Une partie du code est la suivante


private static MongoClient client;

private static IMongoDatabase database;

//本地配置

private const string MongoDBConnectionStr = "mongodb://localhost";

//数据库名称

private static string DefaultDataBaseName = "Test";

 

 

public MongoDBHelper()

{

 GetConnection(DefaultDataBaseName);

}

 

/// <summary>

/// 构造函数 指定数据库

/// </summary>

/// <param name="dataBaseName"></param>

public MongoDBHelper(string dataBaseName)

{

 GetConnection(dataBaseName);

}

 

private static void GetConnection(string dataBaseName)

{

 client = new MongoClient(MongoDBConnectionStr);

 database = client.GetDatabase(dataBaseName);

}

 

/// <summary>

/// 异步插入一条数据,手动输入collection name

/// </summary>

public Task InsertAsync<T>(string collectionName, T obj)

{

 if (database == null)

 {

  throw new Exception("没有指定数据库");

 }

 var collection = database.GetCollection<T>(collectionName);

 return collection.InsertOneAsync(obj);

}

 

/// <summary>

/// 异步插入一条数据,采用类型T的完全限定名作为collection name

/// </summary>

public Task InsertAsync<T>(T obj)

{

 return InsertAsync(typeof(T).FullName, obj);

}

 

/// <summary>

/// 异步插入多条数据,手动输入collection name

/// </summary>

public Task BatchInsertAsync<T>(string collectionName, IEnumerable<T> objs)

{

 if (database == null)

 {

  throw new Exception("没有指定数据库");

 }

 if (objs == null)

 {

  throw new ArgumentException();

 }

 var collection = database.GetCollection<T>(collectionName);

 return collection.InsertManyAsync(objs);

}

 

/// <summary>

/// 异步插入多条数据,采用类型T的完全限定名作为collection name

/// </summary>

public Task BatchInsertAsync<T>(IEnumerable<T> objs)

{

 return BatchInsertAsync(typeof(T).FullName, objs);

}

 

/// <summary>

/// 插入一条数据

/// </summary>

public void Insert<T>(T obj)

{

 InsertAsync(obj).Wait();

}

 

/// <summary>

/// 插入多条数据

/// </summary>

public void Insert<T>(IEnumerable<T> objs)

{

 BatchInsertAsync(objs).Wait();

}

 

/// <summary>

/// MongoDB C# Driver的Find方法,返回IFindFluent。手动输入collection name

/// </summary>

public IFindFluent<T, T> Find<T>(string collectionName, FilterDefinition<T> filter, FindOptions options = null)

{

 if (database == null)

 {

  throw new Exception("没有指定数据库");

 }

 var collection = database.GetCollection<T>(collectionName);

 return collection.Find(filter, options);

}

 

/// <summary>

/// MongoDB C# Driver的Find方法,返回IFindFluent。采用类型T的完全限定名作为collection name

/// </summary>

public IFindFluent<T, T> Find<T>(FilterDefinition<T> filter, FindOptions options = null)

{

 return Find(typeof(T).FullName, filter, options);

}

 

/// <summary>

/// 取符合条件的数据 sort中多个排序条件逗号分隔,默认asc

/// </summary>

public List<T> Get<T>(Expression<Func<T, bool>> condition, int skip, int limit, string sort)

{

 return Get(new List<Expression<Func<T, bool>>> { condition }, skip, limit, sort);

}

 

public List<T> Get<T>(Expression<Func<T, bool>> condition)

{

 return Get(condition, 0, 0, null);

}

 

/// <summary>

/// 取符合条件的数据 sort中多个排序条件逗号分隔,默认asc

/// </summary>

public List<T> Get<T>(List<Expression<Func<T, bool>>> conditions, int skip, int limit, string sort)

{

 if (conditions == null || conditions.Count == 0)

 {

  conditions = new List<Expression<Func<T, bool>>> { x => true };

 }

 var builder = Builders<T>.Filter;

 var filter = builder.And(conditions.Select(x => builder.Where(x)));

 

 var ret = new List<T>();

 try

 {

  List<SortDefinition<T>> sortDefList = new List<SortDefinition<T>>();

  if (sort != null)

  {

   var sortList = sort.Split(&#39;,&#39;);

   for (var i = 0; i < sortList.Length; i++)

   {

    var sl = Regex.Replace(sortList[i].Trim(), @"\s+", " ").Split(&#39; &#39;);

    if (sl.Length == 1 || (sl.Length >= 2 && sl[1].ToLower() == "asc"))

    {

     sortDefList.Add(Builders<T>.Sort.Ascending(sl[0]));

    }

    else if (sl.Length >= 2 && sl[1].ToLower() == "desc")

    {

     sortDefList.Add(Builders<T>.Sort.Descending(sl[0]));

    }

   }

  }

  var sortDef = Builders<T>.Sort.Combine(sortDefList);

  ret = Find(filter).Sort(sortDef).Skip(skip).Limit(limit).ToListAsync().Result;

 }

 catch (Exception e)

 {

  //异常处理

 }

 return ret;

}

 

public List<T> Get<T>(List<Expression<Func<T, bool>>> conditions)

{

 return Get(conditions, 0, 0, null);

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser l'outil de réparation DirectX ? Utilisation détaillée de l'outil de réparation DirectX Comment utiliser l'outil de réparation DirectX ? Utilisation détaillée de l'outil de réparation DirectX Mar 15, 2024 am 08:31 AM

L'outil de réparation DirectX est un outil système professionnel. Sa fonction principale est de détecter l'état DirectX du système actuel. Si une anomalie est détectée, elle peut être réparée directement. De nombreux utilisateurs ne savent peut-être pas comment utiliser l'outil de réparation DirectX. Jetons un coup d'œil au didacticiel détaillé ci-dessous. 1. Utilisez le logiciel de l'outil de réparation pour effectuer la détection des réparations. 2. S'il y a un problème anormal dans le composant C++ une fois la réparation terminée, cliquez sur le bouton Annuler, puis sur la barre de menu Outils. 3. Cliquez sur le bouton Options, sélectionnez l'extension, puis cliquez sur le bouton Démarrer l'extension. 4. Une fois l'extension terminée, détectez-la à nouveau et réparez-la. 5. Si le problème n'est toujours pas résolu une fois l'opération de l'outil de réparation terminée, vous pouvez essayer de désinstaller et de réinstaller le programme qui a signalé l'erreur.

Quelle version est généralement utilisée pour mongodb ? Quelle version est généralement utilisée pour mongodb ? Apr 07, 2024 pm 05:48 PM

Il est recommandé d'utiliser la dernière version de MongoDB (actuellement 5.0) car elle fournit les dernières fonctionnalités et améliorations. Lors de la sélection d'une version, vous devez prendre en compte les exigences fonctionnelles, la compatibilité, la stabilité et le support de la communauté. Par exemple, la dernière version comporte des fonctionnalités telles que les transactions et l'optimisation du pipeline d'agrégation. Assurez-vous que la version est compatible avec l'application. Pour les environnements de production, choisissez la version avec support à long terme. La dernière version bénéficie d'un support communautaire plus actif.

La différence entre nodejs et vuejs La différence entre nodejs et vuejs Apr 21, 2024 am 04:17 AM

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Qu'est-ce que l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Qu'est-ce que l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Mar 18, 2024 am 11:07 AM

L'outil d'activation KMS est un outil logiciel utilisé pour activer les produits Microsoft Windows et Office. KMS est l'abréviation de KeyManagementService, qui est un service de gestion de clés. L'outil d'activation KMS simule les fonctions du serveur KMS afin que l'ordinateur puisse se connecter au serveur KMS virtuel pour activer les produits Windows et Office. L'outil d'activation KMS est de petite taille et puissant en fonction. Il peut être activé en permanence en un seul clic. Il peut activer n'importe quelle version du système Windows et n'importe quelle version du logiciel Office sans être connecté à Internet. et outil d'activation Windows fréquemment mis à jour. Aujourd'hui, je vais le présenter. Permettez-moi de vous présenter le travail d'activation de kms.

Où est la base de données créée par mongodb ? Où est la base de données créée par mongodb ? Apr 07, 2024 pm 05:39 PM

Les données de la base de données MongoDB sont stockées dans le répertoire de données spécifié, qui peut être situé dans le système de fichiers local, le système de fichiers réseau ou le stockage cloud. L'emplacement spécifique est le suivant : Système de fichiers local : Le chemin par défaut est Linux/macOS : /data/db, Windows : C:\data\db. Système de fichiers réseau : le chemin dépend du système de fichiers. Stockage cloud : le chemin est déterminé par le fournisseur de stockage cloud.

Quels sont les avantages de la base de données MongoDB Quels sont les avantages de la base de données MongoDB Apr 07, 2024 pm 05:21 PM

La base de données MongoDB est connue pour sa flexibilité, son évolutivité et ses hautes performances. Ses avantages incluent : un modèle de données documentaires qui permet de stocker les données de manière flexible et non structurée. Évolutivité horizontale vers plusieurs serveurs via le partitionnement. Flexibilité des requêtes, prenant en charge les requêtes complexes et les opérations d’agrégation. La réplication des données et la tolérance aux pannes garantissent la redondance des données et la haute disponibilité. Prise en charge de JSON pour une intégration facile avec les applications frontales. Hautes performances pour une réponse rapide même lors du traitement de grandes quantités de données. Open source, personnalisable et gratuit à utiliser.

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM May 06, 2024 pm 04:43 PM

Le développement des technologies d’intelligence artificielle (IA) bat son plein aujourd’hui et elles ont montré un grand potentiel et une grande influence dans divers domaines. Aujourd'hui, Dayao partagera avec vous 4 cadres de projets liés au modèle d'IA open source .NET LLM, dans l'espoir de vous fournir une référence. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel est un kit de développement logiciel (SDK) open source conçu pour intégrer de grands modèles de langage (LLM) tels qu'OpenAI, Azure

Que signifie MongoDB ? Que signifie MongoDB ? Apr 07, 2024 pm 05:57 PM

MongoDB est un système de base de données distribuée orienté document utilisé pour stocker et gérer de grandes quantités de données structurées et non structurées. Ses concepts de base incluent le stockage et la distribution de documents, et ses principales fonctionnalités incluent le schéma dynamique, l'indexation, l'agrégation, la réduction de mappage et la réplication. Il est largement utilisé dans les systèmes de gestion de contenu, les plateformes de commerce électronique, les sites Web de réseaux sociaux, les applications IoT et le développement d'applications mobiles.

See all articles