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関連の操作
このコマンドを使用すると、tutorialという名前のデータベースに接続しようとします.存在しない場合は作成します.dbを使用します.help()コマンドはコマンドラインヘルプを表示できます
データベースに関する情報を表示します.
データベース関連の名前にスペースなどの文字が含まれている場合は、次のコマンドを使用します.
データの挿入
次の形式でデータを追加します.
データの検索
すべてのデータを検索する場合は、次の手順に従います.
条件を指定します.
フィルタするfield条件を指定します.次のフォーマットを使用します.
具体例:
より大きい、より小さい条件のフィルタ
ANDとOR
ツールバーの
データの更新
次の操作は、nameがJuniのレコードを更新し、$set操作でcuisineフィールドを更新します.$currentDateオペレータを使用してlastModifiedフィールドを更新します.
埋め込まれたデータを更新するには、次の手順に従います.
複数のデータの更新:デフォルトではupdateメソッドは1つのデータのみを更新します.複数のデータを更新するにはmulti optionを使用します.
レコードの置換_idフィールドの情報は、新しいレコードに置き換えると
レコードの削除
条件を満たすすべてのレコードを削除します.
条件を満たすレコードのみを削除し、justOneオプションを使用します.
すべてのレコードを削除:
テーブルを削除します.
集約演算
集約と累積
$groupでキーワードをグループ化し、$groupでグループ化するキーワードを_と指定します.id.$groupはfield pathを介してフィールドにアクセスし、フィールド名は$を接頭辞とする必要があります.$sumはアキュムレータを表し、次の文は計算フィールドがboroughの様々な状況の個数を表す.
出力結果:
集約およびフィルタリング
$matchを使用してレコードをフィルタ
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 } } }
]
);