序章

MongoDBは、最新のWebアプリケーションで一般的に使用されている無料のオープンソースNoSQLドキュメントデータベースです。 この短いチュートリアルでは、MongoDBでデータを操作する方法を探ります。 レコードを作成、取得、更新、および削除します。

前提条件

このチュートリアルを完了するには、MongoDBをインストールする必要があります。これは、 Ubuntu18.04にMongoDBをインストールする方法に従って実行できます。

データベースの作成

MongoDBを実行しているサーバーで、次のように入力します mongo データベースへの接続を開くには:

  1. mongo

あなたが見たら > シンボル、これで最初のデータベースを作成し、レコードの追加を開始する準備が整いました。

ユーザーに関するデータを保存するための個人用データベースを作成しましょう。

私たちの最初のコマンド use userdb 「userdb」という名前の新しいデータベースを作成します。任意の名前を形式で入力できます。 use <databasename>.

  1. use userdb

現在使用しているデータベースを確認できます db コマンド。この場合は「userdb」を返します。

  1. db
Output
userdb

データベースが作成されたので、データベースにデータを格納するためのJSON構造のドキュメントを作成できます。

次のコマンドを実行して、データベースにデータを挿入します。

  1. db.people.insert({ name: "Andrew", age: 33, hobbies: ["Coding", "Gaming", "Cooking"], hungry: false})

あなたは WriteResult 挿入が成功したことを通知する通知:

Output
WriteResult({ "nInserted" : 1 })

文字列、数値、配列、ブール値など、多くのデータ型を使用できます。 The Key 二重引用符は必要ありません。

データの取得

コレクションにデータが含まれると、を使用してそのデータの検索とフィルタリングを開始できます。 .find(<parameters>)

データが「人」ドキュメントに追加されていることを確認するには、 find() 構文。 MongoDBコンソールで次のコマンドを実行します。

  1. db.people.find()

このコマンドは、現在「人」ドキュメントに関連付けられているすべてのデータを表示します。

Output
{ "_id" : ObjectId("5c08c98f3d828385a2162d94"), "name" : "Andrew", "age" : 33, "hobbies" : [ "Coding", "Gaming", "Cooking" ], "hungry" : false }

これをきれいなJSON形式に変換したい場合は、 .pretty().find() :

  1. db.people.find().pretty()
Output
{ "_id" : ObjectId("5c08c98f3d828385a2162d94"), "name" : "Andrew", "age" : 33, "hobbies" : [ "Coding", "Gaming", "Cooking" ], "hungry" : false }

新しいレコードを追加すると、そのMongoは自動的に _id 後で参照するためのキー。

さらにデータを追加してみてください。その後、データの変更と検索に取り組みます。

  1. db.people.insert({ name: "Riley", age: 3, hobbies: ["Sleeping", "Barking", "Snuggles"], hungry: true})
  2. db.people.insert({ name: "You", age: 30, hobbies: ["Coding", "Reading DigitalOcean Articles", "Creating Droplets"], hungry: true})

たとえば、お腹が空いた人の記録だけを見つけたい場合は、次のようにします。

  1. 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 }

または特定の趣味によって:

  1. 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() 関数。 しかし、最初にデータを見て、何を変更したいかを確認しましょう。

  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 } { "_id" : ObjectId("5c08cc2e3d828385a2162d96"), "name" : "You", "age" : 30, "hobbies" : [ "Coding", "Reading DigitalOcean Articles", "Creating Droplets" ], "hungry" : true }

次のように3番目のレコードの名前を変更します。

  1. db.people.update({ name: "You" }, {$set: { name: "Sammy" }})

ステートメントの最初の部分は、更新するために検索しているものを指定し、2番目の部分は設定する新しい値です。 このコマンドを使用すると、1つのレコードが一致し、1つのレコードが変更されていることがわかります。

Output
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ここで、新しく設定した名前でそのレコードを確認すると、次のようになります。

  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 :

  1. db.people.update({ name: "Sammy" }, {$push: { hobbies: "Typing furiously" }})
  2. 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" それらのすべてを削除します。 これを試してみましょう:

  1. db.people.remove({ _id: ObjectId("5c08cc2e3d828385a2162d96")})
Output
WriteResult({ "nRemoved" : 1 })
  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データベースでレコードを作成、取得、更新、および削除する方法の基本を理解できました。