Maison base de données tutoriel mysql Mongodb存储读取Word文档

Mongodb存储读取Word文档

Jun 07, 2016 pm 04:02 PM
mongodb word 存储 操作 文档 系统 读取

在为人事系统做操作日志功能时,为了保证已经打印的信函可以还原,需要在每次打印信函时记录Word信函的内容。 SQL Server只能记录信函的文字内容,那信函的页面布局、字体式等其他内容如何存储呢?此时Mongodb闪亮登场,由于MongoDB的文档结构为BJSON式(BJS

在为人事系统做操作日志功能时,为了保证已经打印的信函可以还原,需要在每次打印信函时记录Word信函的内容。

SQL Server只能记录信函的文字内容,那信函的页面布局、字体格式等其他内容如何存储呢?此时Mongodb闪亮登场,由于MongoDB的文档结构为BJSON格式(BJSON全称:Binary JSON),而BJSON格式本身就支持保存二进制格式的数据,因此可以把文件的二进制格式的数据直接保存到MongoDB的文档结构中。取的时候再以二进制格式取,这样文档就能实现无损保存。

下面是我已经验证成功,存储Word到Mongo,然后从Mongo读取Word的代码,在此和大家分享分享。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using MongoDB.Bson;
using MongoDB.Driver;

namespace Mongodb
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            Init();
        }
        //数据库连接字符串
        const string strconn = "mongodb://127.0.0.1:27017";
        //数据库名称
        const string dbName = "test";
        MongoServer server;
        MongoDatabase db;
        void Init()
        {
            //创建数据库链接
            server = MongoDB.Driver.MongoServer.Create(strconn);
            //获得数据库
            db = server.GetDatabase(dbName);
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            SaveDocToMongo(@"d:\quwenzhe.docx");
        }

        private void btnShow_Click(object sender, EventArgs e)
        {
            GetDocFromMongo(@"E:\newquwenzhe.doc");
        }

        /// <summary>
        /// 保存Word到Mongo
        /// </summary>
        /// <param name="filename">需要保存的文件名</param>
        private void SaveDocToMongo(string filename)
        {
            byte[] byteDoc = File.ReadAllBytes(filename);
            BsonDocument doc = new BsonDocument();
            doc["id"] = "1";
            doc["content"] = byteDoc;
            MongoCollection col = db.GetCollection("doc");
            col.Save(doc);
        }

        /// <summary>
        /// 将Mongo中的Word保存到本地
        /// </summary>
        /// <param name="filename">保存到本地的文件名</param>
        private void GetDocFromMongo(string filename)
        {
            MongoCollection col = db.GetCollection("doc");
            var query = new QueryDocument { { "id", "1" } };
            var result = col.FindAs<BsonDocument>(query);
            byte[] buff = (byte[])((BsonDocument)result.ToList()[0]).GetValue("content");
            FileStream fs;
            FileInfo fi = new FileInfo(filename);
            fs = fi.OpenWrite();
            fs.Write(buff, 0, buff.Length);
            fs.Close();
        }
    }
}
Copier après la connexion
执行完存储操作后,大家可以在MongoVUE中查看存储的二进制数据,如下图所示:
n?…?http://www.2cto.com/soft下载地址:http://pan.baidu.com/s/1pJ5DTer。

好了,时间不早了,我得小憩一下,准备下午的软考,谢谢大家观看。

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Le système de conduite intelligent Qiankun ADS3.0 de Huawei sera lancé en août et sera lancé pour la première fois sur Xiangjie S9 Le système de conduite intelligent Qiankun ADS3.0 de Huawei sera lancé en août et sera lancé pour la première fois sur Xiangjie S9 Jul 30, 2024 pm 02:17 PM

Le 29 juillet, lors de la cérémonie de lancement de la 400 000e nouvelle voiture d'AITO Wenjie, Yu Chengdong, directeur général de Huawei, président de Terminal BG et président de la BU Smart Car Solutions, a assisté et prononcé un discours et a annoncé que les modèles de la série Wenjie seraient sera lancé cette année En août, la version Huawei Qiankun ADS 3.0 a été lancée et il est prévu de pousser successivement les mises à niveau d'août à septembre. Le Xiangjie S9, qui sortira le 6 août, lancera le système de conduite intelligent ADS3.0 de Huawei. Avec l'aide du lidar, la version Huawei Qiankun ADS3.0 améliorera considérablement ses capacités de conduite intelligente, disposera de capacités intégrées de bout en bout et adoptera une nouvelle architecture de bout en bout de GOD (identification générale des obstacles)/PDP (prédictive prise de décision et contrôle), fournissant la fonction NCA de conduite intelligente d'une place de stationnement à l'autre et mettant à niveau CAS3.0

Huawei lancera le système de détection Xuanji dans le domaine des appareils portables intelligents, capable d'évaluer l'état émotionnel de l'utilisateur en fonction de la fréquence cardiaque Huawei lancera le système de détection Xuanji dans le domaine des appareils portables intelligents, capable d'évaluer l'état émotionnel de l'utilisateur en fonction de la fréquence cardiaque Aug 29, 2024 pm 03:30 PM

Récemment, Huawei a annoncé qu'il lancerait en septembre un nouveau produit portable intelligent équipé du système de détection Xuanji, qui devrait être la dernière montre intelligente de Huawei. Ce nouveau produit intégrera des fonctions avancées de surveillance de la santé émotionnelle. Le système de perception Xuanji fournit aux utilisateurs une évaluation complète de la santé avec ses six caractéristiques : précision, exhaustivité, rapidité, flexibilité, ouverture et évolutivité. Le système utilise un module de super-détection et optimise la technologie d'architecture de chemin optique multicanal, ce qui améliore considérablement la précision de surveillance des indicateurs de base tels que la fréquence cardiaque, l'oxygène dans le sang et la fréquence respiratoire. En outre, le système de détection Xuanji a également élargi la recherche sur les états émotionnels sur la base des données de fréquence cardiaque. Il ne se limite pas aux indicateurs physiologiques, mais peut également évaluer l'état émotionnel et le niveau de stress de l'utilisateur. Il prend en charge la surveillance de plus de 60 sports. indicateurs de santé, couvrant les domaines cardiovasculaire, respiratoire, neurologique, endocrinien,

Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Jun 25, 2024 pm 07:09 PM

Table des matières Principe de jalonnement d'Astar Dapp Revenus de jalonnement Démantèlement des projets potentiels de largage aérien : AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Stratégie et fonctionnement du jalonnement "AstarDapp Staking" a été mis à niveau vers la version V3 au début de cette année, et de nombreux ajustements ont été apportés aux revenus de jalonnement règles. À l'heure actuelle, le premier cycle de jalonnement est terminé et le sous-cycle de « vote » du deuxième cycle de jalonnement vient de commencer. Pour bénéficier des avantages « récompense supplémentaire », vous devez franchir cette étape critique (qui devrait durer jusqu'au 26 juin, soit moins de 5 jours). Je vais détailler les revenus du staking Astar,

Xiaomi interdit aux appareils des banques nationales d'utiliser la version internationale du système ! Impossible d'entrer dans le système après avoir flashé Xiaomi interdit aux appareils des banques nationales d'utiliser la version internationale du système ! Impossible d'entrer dans le système après avoir flashé Jul 12, 2024 am 10:23 AM

Selon les informations du 9 juillet, les testeurs de Xiaomi.EU, une version officielle bien connue du système, ont récemment découvert que Xiaomi avait récemment pris de nouvelles mesures pour empêcher les appareils vendus en Chine continentale d'installer la version internationale de Xiaomi. Si un utilisateur tente d'installer la version internationale du système sur une version chinoise de l'appareil, l'appareil affichera un message non pris en charge lors du démarrage et ne pourra pas accéder au système. Ce mécanisme permet d'identifier la version du marché à laquelle appartient le matériel. Pour les téléphones mobiles Xiaomi vendus en Chine continentale, s'il est détecté que la version internationale du système est installée, il ne pourra pas démarrer normalement. Les résultats des tests montrent que le périphérique flashé affichera « Logiciel non pris en charge » (logiciel non pris en charge) dans l'assistant de démarrage et indiquera que l'utilisation de cette version peut entraîner des risques de sécurité. Actuellement, Xiaomi a

Comment configurer l'expansion automatique de MongoDB sur Debian Comment configurer l'expansion automatique de MongoDB sur Debian Apr 02, 2025 am 07:36 AM

Cet article présente comment configurer MongoDB sur Debian System pour réaliser une expansion automatique. Les étapes principales incluent la configuration de l'ensemble de répliques MongoDB et de la surveillance de l'espace disque. 1. Installation de MongoDB Tout d'abord, assurez-vous que MongoDB est installé sur le système Debian. Installez à l'aide de la commande suivante: SudoaptupDaSudoaptInstall-myongoDB-Org 2. Configuration de la réplique MongoDB Ensemble de répliques MongoDB assure la haute disponibilité et la redondance des données, ce qui est la base de la réalisation d'une expansion de capacité automatique. Démarrer le service MongoDB: Sudosystemctlstartmongodsudosys

Comment assurer la haute disponibilité de MongoDB sur Debian Comment assurer la haute disponibilité de MongoDB sur Debian Apr 02, 2025 am 07:21 AM

Cet article décrit comment construire une base de données MongoDB hautement disponible sur un système Debian. Nous explorerons plusieurs façons de garantir que la sécurité des données et les services continueront de fonctionner. Stratégie clé: réplicaset: réplicaset: Utilisez des répliques pour obtenir la redondance des données et le basculement automatique. Lorsqu'un nœud maître échoue, l'ensemble de répliques élise automatiquement un nouveau nœud maître pour assurer la disponibilité continue du service. Sauvegarde et récupération des données: utilisez régulièrement la commande Mongodump pour sauvegarder la base de données et formuler des stratégies de récupération efficaces pour faire face au risque de perte de données. Surveillance et alarmes: déploier les outils de surveillance (tels que Prometheus, Grafana) pour surveiller l'état de course de MongoDB en temps réel, et

Sony a révélé qu'il abandonnait la solution de stockage sur cartouche de 5,5 To Sony a révélé qu'il abandonnait la solution de stockage sur cartouche de 5,5 To Jul 23, 2024 pm 10:39 PM

Selon les informations de ce site Web du 23 juillet, le média technologique techradar a publié hier (22 juillet) un article de blog annonçant que Sony abandonnerait la solution de stockage sur cartouche de 5,5 To. Introduction à la solution de stockage de cartouches d'encre de 5,5 To. Sony a lancé la solution de stockage de cartouches d'encre de troisième génération en 2020. La capacité d'une seule boîte atteint 5,5 To. Elle utilise un disque optique double face avec trois couches de chaque côté. être écrit en une seule fois et les données peuvent être sauvegardées Pas mal pendant 100 ans. Le nom complet de cette solution de stockage sur cartouche est Optical Disc Archive Cartouches. Son objectif est de conserver les données importantes pendant une longue période. Le temps promis par Sony est de garantir qu'elles restent inchangées pendant 100 ans. à la température, à l'humidité, à l'eau, à l'électricité, aux gris et à l'électricité

Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Apr 08, 2025 pm 09:39 PM

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

See all articles