MongoDBでレコードを作成、取得、更新、および削除する方法
序章
MongoDBは、最新のWebアプリケーションで一般的に使用されている無料のオープンソースNoSQLドキュメントデータベースです。 この短いチュートリアルでは、MongoDBでデータを操作する方法を探ります。 レコードを作成、取得、更新、および削除します。
前提条件
このチュートリアルを完了するには、MongoDBをインストールする必要があります。これは、 Ubuntu18.04にMongoDBをインストールする方法に従って実行できます。
データベースの作成
MongoDBを実行しているサーバーで、次のように入力します mongo
データベースへの接続を開くには:
- mongo
あなたが見たら >
シンボル、これで最初のデータベースを作成し、レコードの追加を開始する準備が整いました。
ユーザーに関するデータを保存するための個人用データベースを作成しましょう。
私たちの最初のコマンド use userdb
「userdb」という名前の新しいデータベースを作成します。任意の名前を形式で入力できます。 use <databasename>
.
- use userdb
現在使用しているデータベースを確認できます db
コマンド。この場合は「userdb」を返します。
- db
Outputuserdb
データベースが作成されたので、データベースにデータを格納するためのJSON構造のドキュメントを作成できます。
次のコマンドを実行して、データベースにデータを挿入します。
- db.people.insert({ name: "Andrew", age: 33, hobbies: ["Coding", "Gaming", "Cooking"], hungry: false})
あなたは WriteResult
挿入が成功したことを通知する通知:
OutputWriteResult({ "nInserted" : 1 })
文字列、数値、配列、ブール値など、多くのデータ型を使用できます。 The Key
二重引用符は必要ありません。
データの取得
コレクションにデータが含まれると、を使用してそのデータの検索とフィルタリングを開始できます。 .find(<parameters>)
データが「人」ドキュメントに追加されていることを確認するには、 find()
構文。 MongoDBコンソールで次のコマンドを実行します。
- db.people.find()
このコマンドは、現在「人」ドキュメントに関連付けられているすべてのデータを表示します。
Output{ "_id" : ObjectId("5c08c98f3d828385a2162d94"), "name" : "Andrew", "age" : 33, "hobbies" : [ "Coding", "Gaming", "Cooking" ], "hungry" : false }
これをきれいなJSON形式に変換したい場合は、 .pretty()
後 .find()
:
- db.people.find().pretty()
Output{
"_id" : ObjectId("5c08c98f3d828385a2162d94"),
"name" : "Andrew",
"age" : 33,
"hobbies" : [
"Coding",
"Gaming",
"Cooking"
],
"hungry" : false
}
新しいレコードを追加すると、そのMongoは自動的に _id
後で参照するためのキー。
さらにデータを追加してみてください。その後、データの変更と検索に取り組みます。
- db.people.insert({ name: "Riley", age: 3, hobbies: ["Sleeping", "Barking", "Snuggles"], hungry: true})
- db.people.insert({ name: "You", age: 30, hobbies: ["Coding", "Reading DigitalOcean Articles", "Creating Droplets"], hungry: true})
たとえば、お腹が空いた人の記録だけを見つけたい場合は、次のようにします。
- db.people.find({ hungry: true }).pretty()
Output{
"_id" : ObjectId("5c08cbea3d828385a2162d95"),
"name" : "Riley",
"age" : 3,
"hobbies" : [
"Sleeping",
"Barking",
"Snuggles"
],
"hungry" : true
}
{
"_id" : ObjectId("5c08cc2e3d828385a2162d96"),
"name" : "You",
"age" : 30,
"hobbies" : [
"Coding",
"Reading DigitalOcean Articles",
"Creating Droplets"
],
"hungry" : true
}
または特定の趣味によって:
- db.people.find({ hobbies: "Coding" }).pretty()
Output{
"_id" : ObjectId("5c08c98f3d828385a2162d94"),
"name" : "Andrew",
"age" : 33,
"hobbies" : [
"Coding",
"Gaming",
"Cooking"
],
"hungry" : false
}
{
"_id" : ObjectId("5c08cc2e3d828385a2162d96"),
"name" : "You",
"age" : 30,
"hobbies" : [
"Coding",
"Reading DigitalOcean Articles",
"Creating Droplets"
],
"hungry" : true
}
データの更新
データを変更するには、 .update()
関数。 しかし、最初にデータを見て、何を変更したいかを確認しましょう。
- db.people.find().pretty()
Output{
"_id" : ObjectId("5c08c98f3d828385a2162d94"),
"name" : "Andrew",
"age" : 33,
"hobbies" : [
"Coding",
"Gaming",
"Cooking"
],
"hungry" : false
}
{
"_id" : ObjectId("5c08cbea3d828385a2162d95"),
"name" : "Riley",
"age" : 3,
"hobbies" : [
"Sleeping",
"Barking",
"Snuggles"
],
"hungry" : true
}
{
"_id" : ObjectId("5c08cc2e3d828385a2162d96"),
"name" : "You",
"age" : 30,
"hobbies" : [
"Coding",
"Reading DigitalOcean Articles",
"Creating Droplets"
],
"hungry" : true
}
次のように3番目のレコードの名前を変更します。
- db.people.update({ name: "You" }, {$set: { name: "Sammy" }})
ステートメントの最初の部分は、更新するために検索しているものを指定し、2番目の部分は設定する新しい値です。 このコマンドを使用すると、1つのレコードが一致し、1つのレコードが変更されていることがわかります。
OutputWriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ここで、新しく設定した名前でそのレコードを確認すると、次のようになります。
- db.people.find({ name: "Sammy" }).pretty()
Output{
"_id" : ObjectId("5c08cc2e3d828385a2162d96"),
"name" : "Sammy",
"age" : 30,
"hobbies" : [
"Coding",
"Reading DigitalOcean Articles",
"Creating Droplets"
],
"hungry" : true
}
The name
キー値が新しい値に設定されました Sammy
.
を使用して、新しい趣味をアレイにプッシュすることもできます $push
それ以外の $set
:
- db.people.update({ name: "Sammy" }, {$push: { hobbies: "Typing furiously" }})
- db.people.find({ name: "Sammy" }).pretty()
Output{
"_id" : ObjectId("5c08cc2e3d828385a2162d96"),
"name" : "Sammy",
"age" : 30,
"hobbies" : [
"Coding",
"Reading DigitalOcean Articles",
"Creating Droplets",
"Typing furiously"
],
"hungry" : true
}
次に、データの削除を見てみましょう。
データの削除(D)
を使用してデータを削除します .remove()
関数。 いくつかの方法でデータを削除できますが、最も安全な方法は、一意のを使用して削除するレコードを見つけることです。 _id
たとえば、複数の "Sammy"
エントリ、によって削除 name: "Sammy"
それらのすべてを削除します。 これを試してみましょう:
- db.people.remove({ _id: ObjectId("5c08cc2e3d828385a2162d96")})
OutputWriteResult({ "nRemoved" : 1 })
- db.people.find().pretty()
Output{
"_id" : ObjectId("5c08c98f3d828385a2162d94"),
"name" : "Andrew",
"age" : 33,
"hobbies" : [
"Coding",
"Gaming",
"Cooking"
],
"hungry" : false
}
{
"_id" : ObjectId("5c08cbea3d828385a2162d95"),
"name" : "Riley",
"age" : 3,
"hobbies" : [
"Sleeping",
"Barking",
"Snuggles"
],
"hungry" : true
}
The "Sammy"
エントリは、他の可能なものに影響を与えることなく、安全に削除されました "Sammy"
それらが存在するかどうかを記録します。 これを試して、他に何ができるかを確認してください。
結論
この記事を読むと、MongoDBデータベースでレコードを作成、取得、更新、および削除する方法の基本を理解できました。