(1)MongoDBのクエリのC#を使用します
1.BsonDocumentオブジェクト
名前空間MongoDB.Bsonの存在下でBsonDocumentのソリッドモデルデータのMongoDB凹凸の部分を表すクラス、MongoDBのドキュメントオブジェクト。使用することができるBsonDocument不規則な操作データを、タイプが継承IEnumberable <>タイプ、すなわち、各エンティティモデルのセットとして見る順番に、我々は、モックアップの添字実施例の値を取得することができるされています
// //概要: //取得、または位置によって値を設定します。 // //パラメータ: //インデックス: 。位置で// // //結果を返します 。//値で 公共BsonValueオーバーライドこの[int型のインデックス] {取得または設定し;} // //概要: //取得、または値の名前によってセット。 // //パラメータ: //名前: の//名前。 // //結果を返す: の//値。 このパブリック[文字列名] BsonValueオーバーライド{取得または設定し;} // //摘要: //要素が見つからない場合は要素またはデフォルト値の値を取得します。 // //参数: //名前: 要素の//名前。 // //はdefaultValue: 要素が見つからない場合は、//デフォルト値が返されます。 // //返回结果: 要素またはデフォルト値の//テー値要素が見つからない場合。 [廃止( "使用GetValueメソッド(文字列名、BsonValueはdefaultValue)の代わりに。")] パブリック仮想BsonValueこの[文字列名、BsonValueはdefaultValue] {取得します。}
2.接続構成
//接続アドレス プライベートコネティカット静的な文字列=「のMongoDB://192.168.11.51:40000」; //データベース名 プライベートDBNAME静的な文字列=「ヤン」; //セット名 非公開colNameに静的な文字列=「デモ」; //接続サーバー の静的MongoClientクライアント=新しい新MongoClient(コネティカット州); //指定されたデータベースを取得し 、静的IMongoDatabase DB = client.GetDatabase(DBNAME); //指定されたデータベースのセットBsonDocumentドキュメントオブジェクトを取得 静的IMongoCollectionを<BsonDocument>高専= db.GetCollection <BsonDocument> (colNameに)。
3.データの挿入
VAR DOC =新しい[] { 新しいBsonDocument { { "DepartmentName"、 "开发部"}、 { "ユーザー"、新しいBsonArray { 新しいBsonDocument {{ "名前"、 "狗娃"}、{ "年齢"、20} }、 新しいBsonDocument {{ "名前"、 "狗剩"}、{ "年齢"、22}}、 新しいBsonDocument {{ "名前"、 "铁蛋"}、{ "年齢"、24}} } }、 { "合計"、18}、 { "dim_cm"、新たなBsonArray {14、}} 21であり 、} 新しいBsonDocument { { "DepartmentName"、 "测试部"}、 { "ユーザー"、新しいBsonArray { 新しいBsonDocument {{ "名前"、 "张三"}、{ "年齢"、11}}、 新しいBsonDocument {{ "名前"、 "李四"}、{ "年齢"、34}}、 新しいBsonDocument {{ "名前"、 "王五"}、{ "年齢"、33}} } } 、 { "合計"、4} 、 { " dim_cm」、新しいBsonArray {14、21}} }、 新しいBsonDocument { { "DepartmentName"、 "运维部"}、 { "ピープル」、新BsonArray { 新しいBsonDocument {{ "名前"、 "闫"}、{ "年齢"、20}}、 新しいBsonDocument {{ "名前"、 "王"}、{ "年齢"、22}}、 新しいBsonDocument {{「名前」、 "赵"}、{ "年齢"、24}} } }、 { "合計"、2}、 { "dim_cm"、新たなBsonArray {22.85、30}} } }。 coll.InsertMany(DOC)。
4.クエリ
4.1クエリ部門は情報開発省であります
//制約ジェネレータ作成 FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filterを; //制約 FilterDefinition <BsonDocument>フィルタ= builder.Eq( "DepartmentName"、 " 開発"); //データを取得 するvar結果を= coll.Find <BsonDocument>(フィルタ).ToList(); foreachの(アイテム結果でVAR) { //値全体の除去 Console.WriteLineを(item.AsBsonValueを); }
データ収集4より大きく4.2合計
//制約ジェネレータ作成 FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFIlter = <BsonDocument> .Filterを; //制約 FilterDefinition <BsonDocument> = builder.Gtフィルタ( "合計" ,. 4); VAR = coll.Find結果<BsonDocument>(フィルタ).ToList(); foreachの(アイテム結果でVAR) { //値全体の除去 Console.WriteLineを(item.AsBsonValueを); }
4.3と制約
//制約ジェネレータ作成 FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filterを; //制約 FilterDefinition <BsonDocument>フィルタ= builder.And( builder.Gt( "合計"、 "2")、builder.Eq( "DepartmentName"、 "O&M")); VAR = coll.Find結果<BsonDocument>(フィルタ).ToList(); アイテム結果にforeachの(VAR) { //値全体の除去 Console.WriteLineを(item.AsBsonValue)を; }
4.4クエリの指定された値
//创建约束生成器 FilterDefinitionBuilder <BsonDocument> builderFilter =ビルダー<BsonDocument> .Filter。 ProjectionDefinitionBuilder <BsonDocument> builderProjection =ビルダー<BsonDocument> .Projection。 //某元素不包含某元素除外包含含める 。ProjectionDefinition <BsonDocument>投影= builderProjection.Include( "DepartmentName")( "_ ID")を除外する。 VAR結果= coll.Find <BsonDocument>(builderFilter.Empty).Project(投影).ToList(); foreachの(結果におけるVAR項目) { //取出整条值 Console.WriteLineを(item.AsBsonValue)。 }
4.5ソート
//ジェネレータを作成します FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filter; //シーケンスプロデューサ SortDefinitionBuilder <BsonDocument>ビルダーbuilderSort = <BsonDocument> .Sort; //ソート昇順正シーケンス拘束降順降順 SortDefinition <BsonDocument>ソートをbuilderSort.Ascending =( "合計"); VAR = coll.Find結果<BsonDocument>(builderFilter.Empty).Sort(ソート).ToList(); foreachの(アイテム結果でVAR) { //値全体削除 コンソール。 WriteLineメソッド(item.AsBsonValue); }
クエリで4.6
//ジェネレータを作成し 、FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filter FilterDefinition <BsonDocument> = builderFilter.Inフィルタ( "DepartmentName"新新[] { "試験部"、 "開発"}); VAR結果coll.Find = <BsonDocument>(フィルタ).ToList(); foreachの(アイテム結果でVAR) { //値全体の除去 Console.WriteLineを(item.AsBsonValueを); }
4.7ページングクエリ
//ジェネレータを作成します FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filter; //クエリ]タブをスキップスキップ制限数の VAR結果= coll.Find <BsonDocument>( builderFilter.Empty).SKIP(1).Limit(1 ).ToList(); アイテム結果にforeachの(VAR) { //値全体の除去 Console.WriteLineを(item.AsBsonValueを); }
クエリ内のエントリの総数は4.8
//ジェネレータを作成し 、FilterDefinitionBuilder <BsonDocument>ビルダーbuilderFilter = <BsonDocument> .Filter エントリの//総数 VAR結果= coll.Find <BsonDocument>( builderFilter.Empty).Count();
4.9Linq問い合わせ
//创建生成器// LINQの VAR結果= coll.AsQueryableのY()新しい選択から{DepartmentName = Y [ "DepartmentNameを"]、ID = Y [ "_ ID"]}。 foreachの(結果におけるVAR項目) { Console.WriteLineを( "DepartmentName:" + item.DepartmentName + "====イド:" + item.id)。 }
4.10グループ化するクエリ
//创建生成器 FilterDefinitionBuilder <BsonDocument> builderFilter =ビルダー<BsonDocument> .Filter。 //分组 VAR結果= S内coll.AsQueryable()YによるグループYのY [ "DepartmentName"]から選択新しい{DepartmentName = s.Key、カウント= s.Count()}。 foreachの(結果におけるVAR項目) { Console.WriteLineを( "DepartmentName:" + item.DepartmentName + "====数:" + item.Count)。 }
4.11であっても、テーブルのクエリ
// LINQ //连表查询在这里是自己连自己 VAR結果= Uに[ "_ idは"]は、Oの[ "_ ID"] {新たな選択に等しいcoll.AsQueryable()(coll.AsQueryable中のOに参加)にUからDepartmentName1 = U [ "DepartmentName"]、DepartmentName2 = U [ "DepartmentName"]}。 foreachの(結果におけるVAR項目) { Console.WriteLineを( "DepartmentName1:" + item.DepartmentName1 + "==== DepartmentName2:" + item.DepartmentName2)。 }
カテゴリー: MongoDBの