Mongodb学習ノート

5744 ワード

Mongo DB
  • NoSql概要
  • MongoDB概要
  • Windowsプラットフォームの下にMongo
  • をインストールする
  • Mongo DB公式文書
  • MongoDB基本コマンド
  • MongoDBのデフォルトインストールパスはC:Program FilesMongoDB
  • です.
  • デフォルトのデータベース格納パスc:datadbを作成し、コマンドラインを使用してmongo上のC:Program FilesMongoDBServer3.2binmongodeにパスを関連付けます.exe--dbpath c:datadb、実行に成功した後、データベースサービスがオープンし、リスニングを開始します
  • Mongo Shell
  • C:Program FilesMongoDBServer3.2binmongodeを実行します.ExceファイルはMongoDB Shellを開くことができます.これは、MongoDBを操作および管理するためのインタラクティブなJavaScript shellを備えたものです.
  • helpコマンドは、使用可能なコマンドライン
  • を表示することができる.
    DB関連の操作
    use tutorial
    

    このコマンドを使用すると、tutorialという名前のデータベースに接続しようとします.存在しない場合は作成します.dbを使用します.help()コマンドはコマンドラインヘルプを表示できます
    show dbs
    

    データベースに関する情報を表示します.
    データベース関連の名前にスペースなどの文字が含まれている場合は、次のコマンドを使用します.
    db["dbname"].find()
    db.getCollection("dbname").find()
    

    データの挿入
    次の形式でデータを追加します.
    db.restaurants.insert(
       {
        "address" : {
        "street" : "2 Avenue",
        "zipcode" : "10075",
        "building" : "1480",
        "coord" : [ -73.9557413, 40.7720266 ],
      },
      "borough" : "Manhattan",
      "cuisine" : "Italian",
      "grades" : [
     {
        "date" : ISODate("2014-10-01T00:00:00Z"),
        "grade" : "A",
        "score" : 11
     },
     {
        "date" : ISODate("2014-01-16T00:00:00Z"),
        "grade" : "B",
        "score" : 17
     }
      ],
      "name" : "Vella",
      "restaurant_id" : "41704620"
       }
    )
    

    データの検索
    すべてのデータを検索する場合は、次の手順に従います.
    db.collectionname.find()
    

    条件を指定します.
    フィルタするfield条件を指定します.次のフォーマットを使用します.
    { <field1>: <value1>, <field2>: <value2>, ... }
    

    具体例:
    db.restaurants.find( { "borough": "Manhattan" } )
    

    より大きい、より小さい条件のフィルタ
    db.restaurants.find( { "grades.score": { $gt: 30 } } )
    db.restaurants.find( { "grades.score": { $lt: 10 } } )
    

    ANDとOR
    db.restaurants.find( { "cuisine": "Italian", "address.zipcode": "10075" } )
    db.restaurants.find( { $or: [ { "cuisine": "Italian" }, { "address.zipcode": "10075" } ] } )
    

    ツールバーの
    db.restaurants.find().sort( { "borough": 1, "address.zipcode": 1 } )
    

    データの更新
    次の操作は、nameがJuniのレコードを更新し、$set操作でcuisineフィールドを更新します.$currentDateオペレータを使用してlastModifiedフィールドを更新します.
    db.restaurants.update(
    { "name" : "Juni" },
    {
      $set: { "cuisine": "American (New)" },
      $currentDate: { "lastModified": true }
    }
    )
    

    埋め込まれたデータを更新するには、次の手順に従います.
    db.restaurants.update(
      { "restaurant_id" : "41156888" },
      { $set: { "address.street": "East 31st Street" } }
    )
    

    複数のデータの更新:デフォルトではupdateメソッドは1つのデータのみを更新します.複数のデータを更新するにはmulti optionを使用します.
    db.restaurants.update(
      { "address.zipcode": "10016", cuisine: "Other" },
      {
        $set: { cuisine: "Category To Be Determined" },
        $currentDate: { "lastModified": true }
      },
      { multi: true}
    )
    

    レコードの置換_idフィールドの情報は、新しいレコードに置き換えると
    db.restaurants.update(
       { "restaurant_id" : "41704620" },
       {
         "name" : "Vella 2",
         "address" : {
          "coord" : [ -73.9557413, 40.7720266 ],
          "building" : "1480",
          "street" : "2 Avenue",
          "zipcode" : "10075"
          }
       }
    )
    

    レコードの削除
    条件を満たすすべてのレコードを削除します.
    db.restaurants.remove( { "borough": "Manhattan" } )
    

    条件を満たすレコードのみを削除し、justOneオプションを使用します.
    db.restaurants.remove( { "borough": "Queens" }, { justOne: true } )
    

    すべてのレコードを削除:
    db.restaurants.remove( { } )
    

    テーブルを削除します.
    db.restaurants.drop()
    

    集約演算
    集約と累積
    $groupでキーワードをグループ化し、$groupでグループ化するキーワードを_と指定します.id.$groupはfield pathを介してフィールドにアクセスし、フィールド名は$を接頭辞とする必要があります.$sumはアキュムレータを表し、次の文は計算フィールドがboroughの様々な状況の個数を表す.
    db.restaurants.aggregate(
       [
        { $group: { "_id": "$borough", "count": { $sum: 1 } } }
       ]
    );
    

    出力結果:
    { "_id" : "Staten Island", "count" : 969 }
    { "_id" : "Brooklyn", "count" : 6086 }
    { "_id" : "Manhattan", "count" : 10259 }
    { "_id" : "Queens", "count" : 5656 }
    { "_id" : "Bronx", "count" : 2338 }
    { "_id" : "Missing", "count" : 51 }
    

    集約およびフィルタリング
    $matchを使用してレコードをフィルタ
    db.restaurants.aggregate(
       [
         { $match: { "borough": "Queens", "cuisine": "Brazilian" } },
         { $group: { "_id": "$address.zipcode" , "count": { $sum: 1 } } }
       ]
    );