(1)MongoDBのクエリのC#を使用します

(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の

おすすめ

転載: blog.csdn.net/cxu123321/article/details/93336121