mongodbを使用して、変更を追加
7579 ワード
最近のプロジェクトでは、データベースがmongodbを使用している以上.前は接触していませんでしたね.どうすればいいですか.じゃ、もう一度勉強しましょう.とても面白いです
ちょっと紹介します.Mongodbは、分散ファイルに基づいて格納されるデータベースです.C++言語の記述があります.Webアプリケーションが拡張性の高い高性能のデータストレージソリューションを提供することを目的としています.
MongoDBは高性能、オープンソース、モードレスのドキュメント型データベースで、現在のNoSqlデータベースで人気のあるデータベースです.
MongoDBはリレーショナル・データベースと非リレーショナル・データベースの間に介在する製品で、非リレーショナル・データベースの中で最も機能が豊富で、最もリレーショナル・データベースに似ています.彼がサポートするデータ構造は非常に緩やかで、jsonのようなbjsonフォーマットであるため、比較的複雑なデータ型を格納することができる.Mongoの最大の特徴は、彼がサポートしているクエリー言語が非常に強く、その構文はオブジェクト向けのクエリー言語に似ており、類似関係データベースの単一テーブルクエリーのほとんどの機能を実現することができ、データのインデックス化もサポートしていることです.
従来のリレーショナル・データベースは、データベース(database)、テーブル(table)、レコード(record)の3つの階層概念から構成されており、MongoDBはデータベース(database)、コレクション(collection)、ドキュメント・オブジェクトから構成されています.(document)3つの階層で構成されています.MongoDBはリレーショナル・データベースのテーブルですが、集合には列、行、リレーショナル・コンセプトがありません.これはモードの自由の特徴を体現しています.
いい加減にしないで、直接テーマに入ります.
mongodbデータのインストール手順を紹介します
1.
mongodbをwindowサービスにインストールする
mongod–dbpath D:/MongoDB/dataコマンドラインを実行するたびにMongoDBを起動するのは不便で、Windowsサービスとして便利になります.コマンドは次のとおりです.
D:\MongoDB\bin>mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data --directoryperdb --serviceName MongoDB --install
注意:1:logは必ずxxxを指定します.logファイル(ファイルが存在しなくてもこのように書くと、自動的に作成され、このように書くことはできません–logpath d:mongodblogs);2:logsフォルダとdataフォルダはまず新しいほうがいいです.ServiceNameのN文字は大文字にします.
このコマンドラインはログファイルを指定します:D:MongoDBlogsMongoDB.log、ログは追加で出力されます.
データファイルディレクトリ:D:MongoDBdata、パラメータ-directoryperdbは、各DBに新しいディレクトリが作成されることを示します.
Windowsサービスの名称:MongoDB;
以上の3つのパラメータはすべて自分の状況によって決めることができます.
最後にインストールパラメータ:–install、それに対して–remove
MongoDBの起動:net start MongoDB停止MongoDB:net stop MongoDB
(一)データ可のリンク.
Webでconfigリンク
(二)C#で公式のドライバを使用してmongodbデータベースを操作する
(1)nugetでofficial mongodb C#driverを見つけてダウンロード、インストール
完了してから参照するとmongodbが表示されます.Driver.dll(ドライバ)とmongodb.Bson(シーケンス化,Json関連)の2 dll
ドライバのインストールが完了しました.次にデータベースへのリンクを行います.
(2)リンクデータベース,コードは以下の通りである.
ついでに模型を貼っておきましょう
これでリンクデータベースも完了し、次に添削を行います
(三)データの追加
AddBaseDetailメソッドの呼び出し
(四)データの修正
まず修正するレコードのIDを探し出して、iDによってこのレコードを探し出して、更にこのレコードの中のあるフィールドを修正します
(1)iDによりこの記録を探し出す
この記録を修正する
この記録を更新する
(五)削除
(1)このデータのIDを見つけて削除している
(2)削除
OKです.
ちょっと紹介します.Mongodbは、分散ファイルに基づいて格納されるデータベースです.C++言語の記述があります.Webアプリケーションが拡張性の高い高性能のデータストレージソリューションを提供することを目的としています.
MongoDBは高性能、オープンソース、モードレスのドキュメント型データベースで、現在のNoSqlデータベースで人気のあるデータベースです.
MongoDBはリレーショナル・データベースと非リレーショナル・データベースの間に介在する製品で、非リレーショナル・データベースの中で最も機能が豊富で、最もリレーショナル・データベースに似ています.彼がサポートするデータ構造は非常に緩やかで、jsonのようなbjsonフォーマットであるため、比較的複雑なデータ型を格納することができる.Mongoの最大の特徴は、彼がサポートしているクエリー言語が非常に強く、その構文はオブジェクト向けのクエリー言語に似ており、類似関係データベースの単一テーブルクエリーのほとんどの機能を実現することができ、データのインデックス化もサポートしていることです.
従来のリレーショナル・データベースは、データベース(database)、テーブル(table)、レコード(record)の3つの階層概念から構成されており、MongoDBはデータベース(database)、コレクション(collection)、ドキュメント・オブジェクトから構成されています.(document)3つの階層で構成されています.MongoDBはリレーショナル・データベースのテーブルですが、集合には列、行、リレーショナル・コンセプトがありません.これはモードの自由の特徴を体現しています.
いい加減にしないで、直接テーマに入ります.
mongodbデータのインストール手順を紹介します
1.
mongodbをwindowサービスにインストールする
mongod–dbpath D:/MongoDB/dataコマンドラインを実行するたびにMongoDBを起動するのは不便で、Windowsサービスとして便利になります.コマンドは次のとおりです.
D:\MongoDB\bin>mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data --directoryperdb --serviceName MongoDB --install
注意:1:logは必ずxxxを指定します.logファイル(ファイルが存在しなくてもこのように書くと、自動的に作成され、このように書くことはできません–logpath d:mongodblogs);2:logsフォルダとdataフォルダはまず新しいほうがいいです.ServiceNameのN文字は大文字にします.
このコマンドラインはログファイルを指定します:D:MongoDBlogsMongoDB.log、ログは追加で出力されます.
データファイルディレクトリ:D:MongoDBdata、パラメータ-directoryperdbは、各DBに新しいディレクトリが作成されることを示します.
Windowsサービスの名称:MongoDB;
以上の3つのパラメータはすべて自分の状況によって決めることができます.
最後にインストールパラメータ:–install、それに対して–remove
MongoDBの起動:net start MongoDB停止MongoDB:net stop MongoDB
(一)データ可のリンク.
Webでconfigリンク
<connectionStrings>
<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-iDream.Web-20131021202431;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-iDream.Web-20131021202431.mdf" />
</connectionStrings>
(二)C#で公式のドライバを使用してmongodbデータベースを操作する
(1)nugetでofficial mongodb C#driverを見つけてダウンロード、インストール
完了してから参照するとmongodbが表示されます.Driver.dll(ドライバ)とmongodb.Bson(シーケンス化,Json関連)の2 dll
ドライバのインストールが完了しました.次にデータベースへのリンクを行います.
(2)リンクデータベース,コードは以下の通りである.
MongoServer _server;
MongoDatabase _database;
MongoCollection<BaseDetails> _contacts;
public BaseDetailsRepository()
: this("")
{
}
public BaseDetailsRepository(string connection)
{
if (string.IsNullOrWhiteSpace(connection))
{
connection = "mongodb://localhost:27017";
}
_server = MongoServer.Create(connection);
_database = _server.GetDatabase("iD_BaseDetails", SafeMode.True);//
_contacts = _database.GetCollection<BaseDetails>("iD_BaseDetails");//
}
ついでに模型を貼っておきましょう
using MongoDB.Bson.Serialization.Attributes;
[BsonId]
public string DId { set; get; }
public string BId { set; get; }
public string Que01 { set; get; }
public string Que02 { set; get; }
public string Que03 { set; get; }
これでリンクデータベースも完了し、次に添削を行います
(三)データの追加
public BaseDetails AddBaseDetail(BaseDetails item)
{
item.DId = ObjectId.GenerateNewId().ToString();
//item.PubDt = DateTime.UtcNow;
_contacts.Insert(item);
return item;
}
AddBaseDetailメソッドの呼び出し
[HttpPost]
public ActionResult Detail(BaseDetails item, string Id)
{
BaseDetailsRepository bd = new BaseDetailsRepository();
bd.AddBaseDetail(item);
return RedirectToAction("Success");
}
(四)データの修正
まず修正するレコードのIDを探し出して、iDによってこのレコードを探し出して、更にこのレコードの中のあるフィールドを修正します
(1)iDによりこの記録を探し出す
public BaseReg GetData(string id)
{
IMongoQuery imq = Query.EQ("_id", id);
return _contacts.Find(imq).FirstOrDefault();
}
この記録を修正する
[HttpPost]
public ActionResult TJBeiZhu(string Id,BaseReg brg)
{
try
{
BaseReg br = new BaseReg();
BaseRepostory brt=new BaseRepostory();
BaseReg model = brt.GetData(Id);//
br.Id = model.Id;
br.BId = model.BId;
br.RName = model.RName;
br.Nickname = model.Nickname;
br.Local = model.Local;
br.Phone = model.Local;
br.Weixin = model.Weixin;
br.WeiBo = model.WeiBo;
br.Qq = model.Qq;
br.Email = model.Email;
br.Project = model.Project;
br.PubDt = model.PubDt;
br.Beizhu =brg.Beizhu;
brt.AddBeiZhu(br);//
return RedirectToAction("index", "Admin");
}
catch (Exception ex)
{
throw ex;
}
}
この記録を更新する
public BaseReg AddBeiZhu(BaseReg model)
{
// “Id” model.Id
// var query = new QueryDocument { { "Id", model.Id } };
IMongoQuery query = Query.EQ("_id", model.Id);
//
var update = new UpdateDocument { { "$set", new QueryDocument { { "Beizhu", model.Beizhu } } } };
//
_contacts.Update(query, update);
return model;
}
(五)削除
(1)このデータのIDを見つけて削除している
public BaseReg GetData(string id)
{
IMongoQuery imq = Query.EQ("_id", id);
return _contacts.Find(imq).FirstOrDefault();
}
(2)削除
[HttpPost]
public ActionResult DelBase(string Id)
{
try
{
BaseRepostory brt = new BaseRepostory();
BaseReg model = brt.GetData(Id);
brt.DelData(model);
return RedirectToAction("index", "Admin");
}
catch (Exception ex)
{
throw ex;
}
}
public BaseReg DelData(BaseReg model)
{
IMongoQuery imq = Query.EQ("_id", model.Id);
_contacts.Remove(imq);
return model;
}
OKです.