Update Documents
次の方法を使用して、MongoDB 内のドキュメントを更新できます。
プログラミング言語のドライバー。
MongoDB Atlas UI。詳しくは「MongoDB Atlas を使用してドキュメントをアップデートする」を参照してください。
➤ 右上の言語の選択ドロップダウンメニューを使用して、以下の例の言語を設定します。
このページでは、次の mongosh
メソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは MongoDB Compass を使用してドキュメントをアップデートします。
このページの例えでは inventory
コレクションを使用しています。inventory
コレクションに次のドキュメントを入力します。
このページでは、次の MongoDB C# ドライバーメソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次のMongoDB Go ドライバー関数を使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の Java Reactive Streams ドライバー を使用します メソッド。
com.mongodb.reactivestreams.client.MongoCollection.updateOne
com.mongodb.reactivestreams.client.MongoCollection.updateMany
com.mongodb.reactivestreams.client.MongoCollection.replaceOne
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の Java 同期ドライバー を使用します メソッド。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の Motor ドライバー メソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の MongoDB Node.jsドライバー メソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の MongoDB Perl ドライバー メソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の MongoDB PHP ライブラリメソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは次の PyMongo を使用します Python ドライバー メソッド:
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の MongoDB Ruby ドライバーメソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
このページでは、次の MongoDB Scalaドライバーメソッドを使用します。
このページの例では、inventory
コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory
コレクションを作成します。
db.inventory.insertMany( [ { item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" }, { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" }, { item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" }, { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" }, { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }, { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }, { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }, { item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" }, { item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" } ] );
[ { "item": "canvas", "qty": 100, "size": { "h": 28, "w": 35.5, "uom": "cm" }, "status": "A" }, { "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }, { "item": "mat", "qty": 85, "size": { "h": 27.9, "w": 35.5, "uom": "cm" }, "status": "A" }, { "item": "mousepad", "qty": 25, "size": { "h": 19, "w": 22.85, "uom": "cm" }, "status": "P" }, { "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "P" }, { "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" }, { "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" }, { "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }, { "item": "sketchbook", "qty": 80, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" }, { "item": "sketch pad", "qty": 95, "size": { "h": 22.85, "w": 30.5, "uom": "cm" }, "status": "A" } ]
MongoDB Compass を使用してドキュメントを挿入する手順については、「ドキュメントの挿入」を参照してください。
var documents = new[] { new BsonDocument { { "item", "canvas" }, { "qty", 100 }, { "size", new BsonDocument { { "h", 28 }, { "w", 35.5 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "journal" }, { "qty", 25 }, { "size", new BsonDocument { { "h", 14 }, { "w", 21 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "mat" }, { "qty", 85 }, { "size", new BsonDocument { { "h", 27.9 }, { "w", 35.5 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "mousepad" }, { "qty", 25 }, { "size", new BsonDocument { { "h", 19 }, { "w", 22.85 }, { "uom", "cm" } } }, { "status", "P" } }, new BsonDocument { { "item", "notebook" }, { "qty", 50 }, { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } }, { "status", "P" } }, new BsonDocument { { "item", "paper" }, { "qty", 100 }, { "size", new BsonDocument { { "h", 8.5 }, { "w", 11 }, { "uom", "in" } } }, { "status", "D" } }, new BsonDocument { { "item", "planner" }, { "qty", 75 }, { "size", new BsonDocument { { "h", 22.85 }, { "w", 30 }, { "uom", "cm" } } }, { "status", "D" } }, new BsonDocument { { "item", "postcard" }, { "qty", 45 }, { "size", new BsonDocument { { "h", 10 }, { "w", 15.25 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "sketchbook" }, { "qty", 80 }, { "size", new BsonDocument { { "h", 14 }, { "w", 21 }, { "uom", "cm" } } }, { "status", "A" } }, new BsonDocument { { "item", "sketch pad" }, { "qty", 95 }, { "size", new BsonDocument { { "h", 22.85 }, { "w", 30.5 }, { "uom", "cm" } } }, { "status", "A" } }, }; collection.InsertMany(documents);
docs := []interface{}{ bson.D{ {"item", "canvas"}, {"qty", 100}, {"size", bson.D{ {"h", 28}, {"w", 35.5}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "journal"}, {"qty", 25}, {"size", bson.D{ {"h", 14}, {"w", 21}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "mat"}, {"qty", 85}, {"size", bson.D{ {"h", 27.9}, {"w", 35.5}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "mousepad"}, {"qty", 25}, {"size", bson.D{ {"h", 19}, {"w", 22.85}, {"uom", "in"}, }}, {"status", "P"}, }, bson.D{ {"item", "notebook"}, {"qty", 50}, {"size", bson.D{ {"h", 8.5}, {"w", 11}, {"uom", "in"}, }}, {"status", "P"}, }, bson.D{ {"item", "paper"}, {"qty", 100}, {"size", bson.D{ {"h", 8.5}, {"w", 11}, {"uom", "in"}, }}, {"status", "D"}, }, bson.D{ {"item", "planner"}, {"qty", 75}, {"size", bson.D{ {"h", 22.85}, {"w", 30}, {"uom", "cm"}, }}, {"status", "D"}, }, bson.D{ {"item", "postcard"}, {"qty", 45}, {"size", bson.D{ {"h", 10}, {"w", 15.25}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "sketchbook"}, {"qty", 80}, {"size", bson.D{ {"h", 14}, {"w", 21}, {"uom", "cm"}, }}, {"status", "A"}, }, bson.D{ {"item", "sketch pad"}, {"qty", 95}, {"size", bson.D{ {"h", 22.85}, {"w", 30.5}, {"uom", "cm"}, }}, {"status", "A"}, }, } result, err := coll.InsertMany(context.TODO(), docs)
Publisher<Success> insertManyPublisher = collection.insertMany(asList( Document.parse("{ item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }"), Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }"), Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"), Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"), Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' }") ));
collection.insertMany(asList( Document.parse("{ item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }"), Document.parse("{ item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }"), Document.parse("{ item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }"), Document.parse("{ item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }"), Document.parse("{ item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }"), Document.parse("{ item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' }") ));
await db.inventory.insert_many( [ { "item": "canvas", "qty": 100, "size": {"h": 28, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "journal", "qty": 25, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "mat", "qty": 85, "size": {"h": 27.9, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "mousepad", "qty": 25, "size": {"h": 19, "w": 22.85, "uom": "cm"}, "status": "P", }, { "item": "notebook", "qty": 50, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "P", }, { "item": "paper", "qty": 100, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "D", }, { "item": "planner", "qty": 75, "size": {"h": 22.85, "w": 30, "uom": "cm"}, "status": "D", }, { "item": "postcard", "qty": 45, "size": {"h": 10, "w": 15.25, "uom": "cm"}, "status": "A", }, { "item": "sketchbook", "qty": 80, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "sketch pad", "qty": 95, "size": {"h": 22.85, "w": 30.5, "uom": "cm"}, "status": "A", }, ] )
await db.collection('inventory').insertMany([ { item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }, { item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }, { item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }, { item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }, { item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }, { item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' } ]);
$db->coll("inventory")->insert_many( [ { item => "canvas", qty => 100, size => { h => 28, w => 35.5, uom => "cm" }, status => "A" }, { item => "journal", qty => 25, size => { h => 14, w => 21, uom => "cm" }, status => "A" }, { item => "mat", qty => 85, size => { h => 27.9, w => 35.5, uom => "cm" }, status => "A" }, { item => "mousepad", qty => 25, size => { h => 19, w => 22.85, uom => "cm" }, status => "P" }, { item => "notebook", qty => 50, size => { h => 8.5, w => 11, uom => "in" }, status => "P" }, { item => "paper", qty => 100, size => { h => 8.5, w => 11, uom => "in" }, status => "D" }, { item => "planner", qty => 75, size => { h => 22.85, w => 30, uom => "cm" }, status => "D" }, { item => "postcard", qty => 45, size => { h => 10, w => 15.25, uom => "cm" }, status => "A" }, { item => "sketchbook", qty => 80, size => { h => 14, w => 21, uom => "cm" }, status => "A" }, { item => "sketch pad", qty => 95, size => { h => 22.85, w => 30.5, uom => "cm" }, status => "A" } ] );
$insertManyResult = $db->inventory->insertMany([ [ 'item' => 'canvas', 'qty' => 100, 'size' => ['h' => 28, 'w' => 35.5, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'journal', 'qty' => 25, 'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'mat', 'qty' => 85, 'size' => ['h' => 27.9, 'w' => 35.5, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'mousepad', 'qty' => 25, 'size' => ['h' => 19, 'w' => 22.85, 'uom' => 'cm'], 'status' => 'P', ], [ 'item' => 'notebook', 'qty' => 50, 'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'], 'status' => 'P', ], [ 'item' => 'paper', 'qty' => 100, 'size' => ['h' => 8.5, 'w' => 11, 'uom' => 'in'], 'status' => 'D', ], [ 'item' => 'planner', 'qty' => 75, 'size' => ['h' => 22.85, 'w' => 30, 'uom' => 'cm'], 'status' => 'D', ], [ 'item' => 'postcard', 'qty' => 45, 'size' => ['h' => 10, 'w' => 15.25, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'sketchbook', 'qty' => 80, 'size' => ['h' => 14, 'w' => 21, 'uom' => 'cm'], 'status' => 'A', ], [ 'item' => 'sketch pad', 'qty' => 95, 'size' => ['h' => 22.85, 'w' => 30.5, 'uom' => 'cm'], 'status' => 'A', ], ]);
db.inventory.insert_many( [ { "item": "canvas", "qty": 100, "size": {"h": 28, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "journal", "qty": 25, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "mat", "qty": 85, "size": {"h": 27.9, "w": 35.5, "uom": "cm"}, "status": "A", }, { "item": "mousepad", "qty": 25, "size": {"h": 19, "w": 22.85, "uom": "cm"}, "status": "P", }, { "item": "notebook", "qty": 50, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "P", }, { "item": "paper", "qty": 100, "size": {"h": 8.5, "w": 11, "uom": "in"}, "status": "D", }, { "item": "planner", "qty": 75, "size": {"h": 22.85, "w": 30, "uom": "cm"}, "status": "D", }, { "item": "postcard", "qty": 45, "size": {"h": 10, "w": 15.25, "uom": "cm"}, "status": "A", }, { "item": "sketchbook", "qty": 80, "size": {"h": 14, "w": 21, "uom": "cm"}, "status": "A", }, { "item": "sketch pad", "qty": 95, "size": {"h": 22.85, "w": 30.5, "uom": "cm"}, "status": "A", }, ] )
client[:inventory].insert_many([ { item: 'canvas', qty: 100, size: { h: 28, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'journal', qty: 25, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'mat', qty: 85, size: { h: 27.9, w: 35.5, uom: 'cm' }, status: 'A' }, { item: 'mousepad', qty: 25, size: { h: 19, w: 22.85, uom: 'cm' }, status: 'P' }, { item: 'notebook', qty: 50, size: { h: 8.5, w: 11, uom: 'in' }, status: 'P' }, { item: 'paper', qty: 100, size: { h: 8.5, w: 11, uom: 'in' }, status: 'D' }, { item: 'planner', qty: 75, size: { h: 22.85, w: 30, uom: 'cm' }, status: 'D' }, { item: 'postcard', qty: 45, size: { h: 10, w: 15.25, uom: 'cm' }, status: 'A' }, { item: 'sketchbook', qty: 80, size: { h: 14, w: 21, uom: 'cm' }, status: 'A' }, { item: 'sketch pad', qty: 95, size: { h: 22.85, w: 30.5, uom: 'cm' }, status: 'A' } ])
collection.insertMany(Seq( Document("""{ item: "canvas", qty: 100, size: { h: 28, w: 35.5, uom: "cm" }, status: "A" }"""), Document("""{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" }"""), Document("""{ item: "mat", qty: 85, size: { h: 27.9, w: 35.5, uom: "cm" }, status: "A" }"""), Document("""{ item: "mousepad", qty: 25, size: { h: 19, w: 22.85, uom: "cm" }, status: "P" }"""), Document("""{ item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" }"""), Document("""{ item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" }"""), Document("""{ item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" }"""), Document("""{ item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }"""), Document("""{ item: "sketchbook", qty: 80, size: { h: 14, w: 21, uom: "cm" }, status: "A" }"""), Document("""{ item: "sketch pad", qty: 95, size: { h: 22.85, w: 30.5, uom: "cm" }, status: "A" }""") )).execute()
コレクション内のドキュメントの更新
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
Compass でドキュメントをアップデートするには、対象のドキュメントにカーソルを合わせ、鉛筆アイコンをクリックします。
鉛筆アイコンをクリックすると、ドキュメントは編集モードになります。
このドキュメントを変更するには、変更したいアイテムをクリックして値を変更します。
Compass でドキュメントをアップデートする詳細な手順については、Compass のドキュメントを参照するか、以下の例えに従ってください。
変更内容が満足できるものになったら、[Update] をクリックしてアップデートされたドキュメントを保存します。
[Cancel] をクリックすると、ドキュメントに加えられた変更がすべて元に戻り、編集モードが終了します。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator> => { <field1> => <value1>, ... }, <update operator> => { <field2> => <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
ドライバーはドキュメントのアップデートの作成を容易にする com.mongodb.client.model.Updates クラスを提供します。以下に例えを挙げます。
combine(set( <field1>, <value1>), set(<field2>, <value2> ) )
アップデート ヘルパーのリストについては com.mongodb.client.model.Updates を参照してください。
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
ドライバーはドキュメントのアップデートの作成を容易にする com.mongodb.client.model.Updates クラスを提供します。以下に例えを挙げます。
combine(set( <field1>, <value1>), set(<field2>, <value2> ) )
アップデート ヘルパーのリストについては com.mongodb.client.model.Updates を参照してください。
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator> => { <field1> => <value1>, ... }, <update operator> => { <field2> => <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
[ <update operator> => [ <field1> => <value1>, ... ], <update operator> => [ <field2> => <value2>, ... ], ... ]
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator>: { <field1>: <value1>, ... }, <update operator>: { <field2>: <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
{ <update operator> => { <field1> => <value1>, ... }, <update operator> => { <field2> => <value2>, ... }, ... }
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
ドキュメントのアップデートに、MongoDB はフィールド値を変更するための $set
などのアップデート 演算子を提供します。
更新演算子を使用するには、次の形式の更新ドキュメントを更新メソッドに渡します。
( set (<field1>, <value1>), set (<field2>, <value2>), ... )
$set
などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
注意
MongoDB では、変更内容を指定するために、アップデート ドキュメントの代わりに集計パイプラインを使用できます。詳しくは、メソッドのリファレンス ページを参照してください。
単一ドキュメントの更新
次の例えでは inventory
コレクションの db.collection.updateOne()
メソッドを使用して、item
が "paper"
に等しい最初のドキュメントをアップデートします。
次の例えでは MongoDB Compass を使用して、 inventory
コレクション内の item: paper
の単一のドキュメントを変更する方法を示しています。
注意
この例では Compass テーブル ビュー を使用してドキュメントを変更します。MongoDB Compass リスト ビュー を使用した編集プロセスも同様のアプローチとなります。
Compass のテーブル ビューとリスト ビューの違いの詳細については、Compass のドキュメントを参照してください。
次の例では、inventory
コレクションの IMongoCollection.UpdateOne() メソッドを使用して、item
が "paper"
と等しい 最初のドキュメントを更新します。
次の例では、inventory
コレクションの Collection.UpdateOne メソッドを使用して、item
が "paper"
と等しい最初のドキュメントを更新します。
次の例えでは inventory
コレクションの com.mongodb.reactivestreams.client.MongoCollection.updateOne を使用して、item
が "paper"
に等しい最初のドキュメントをアップデートします。
次の例では inventory
コレクションの com.mongodb.client.MongoCollection.updateOne メソッドを使用して、item
が "paper"
に等しい最初のドキュメントをアップデートします。
次の例では、inventory
コレクションの update_one
メソッドを使用して、item
が "paper"
と等しい最初のドキュメントを更新します。
次の例では、 Collection.updateOne()inventory
コレクションのメソッドを使用して、 item
が"paper"
と等しい最初のドキュメントを更新します。
以下の例では update_one() メソッドを inventory
コレクションで使用して、item
が "paper"
に等しい最初のドキュメントを更新します。
次の例えでは inventory
コレクションの updateOne()
メソッドを使用して、 item
が "paper"
に等しい最初のドキュメントをアップデートします。
次の例では、inventory
コレクションの update_one
メソッドを使用して、item
が "paper"
と等しい最初のドキュメントを更新します。
以下の例では update_one() メソッドを inventory
コレクションで使用して、item
が"paper"
に等しい最初のドキュメントを更新します。
以下の例では updateOne() メソッドを inventory
コレクションで使用して、item
が "paper"
に等しい最初のドキュメントを更新します。
db.inventory.updateOne( { item: "paper" }, { $set: { "size.uom": "cm", status: "P" }, $currentDate: { lastModified: true } } )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
ターゲット ドキュメントを次のように変更します。
status
フィールドをD
からP
に変更します。size.uom
フィールドをin
からcm
に変更します。今日の日付を値とする
lastModified
という新しいフィールドを追加します。
テーブル ビューにアクセスするには、上部のナビゲーションにある [Table] ボタンをクリックします。
Compass クエリ バーを使用して、対象のドキュメントを見つけます。
次のフィルター ドキュメントをクエリ バーにコピーし、[Find] をクリックします。
{ item: "paper" } status
フィールドにカーソルを合わせ、ドキュメントの右側に表示される鉛筆アイコンをクリックして編集モードを開始します。フィールドの値を
"P"
に変更します。変更を保存するには、フィールドの下の Update ボタンをクリックします。
size
フィールドにカーソルを合わせ、フィールドの右側に表示される外向きの矢印をクリックすると、新しいタブが開き、size
オブジェクト内のフィールドが表示されます。status
フィールドの編集については手順 3-5 の説明と同じプロセスを使用して、size.uom
フィールドの値を"cm"
に変更します。inventory
というラベルの付いたテーブルの上にある左端のタブをクリックすると元のテーブルビューに戻り、最上位のドキュメントが表示されます。status
フィールドにカーソルを合わせ、ドキュメントの右側に表示される鉛筆アイコンをクリックして編集モードを再度開始します。status
フィールド内、編集メニューに表示される plus button アイコンの順にクリックします。プラスボタンの下に表示される Add Field After status ボタンをクリックします。
今日の日付を値とする
lastModified
という新しいフィールドを追加します。フィールドタイプをDate
に設定します。変更を保存するには、フィールドの下の Update ボタンをクリックします。
注意
MongoDB Compass は
$currentDate
またはその他のフィールド アップデート 演算子をサポートしていないため、Compass に日付値を手動で入力する必要があります。
var filter = Builders<BsonDocument>.Filter.Eq("item", "paper"); var update = Builders<BsonDocument>.Update.Set("size.uom", "cm").Set("status", "P").CurrentDate("lastModified"); var result = collection.UpdateOne(filter, update);
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
result, err := coll.UpdateOne( context.TODO(), bson.D{ {"item", "paper"}, }, bson.D{ {"$set", bson.D{ {"size.uom", "cm"}, {"status", "P"}, }}, {"$currentDate", bson.D{ {"lastModified", true}, }}, }, )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
Publisher<UpdateResult> updateOnePublisher = collection.updateOne(eq("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")));
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
collection.updateOne(eq("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")));
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
await db.inventory.update_one( {"item": "paper"}, {"$set": {"size.uom": "cm", "status": "P"}, "$currentDate": {"lastModified": True}}, )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
await db.collection('inventory').updateOne( { item: 'paper' }, { $set: { 'size.uom': 'cm', status: 'P' }, $currentDate: { lastModified: true } } );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
# For boolean values, use boolean.pm for 'true' and 'false' $db->coll("inventory")->update_one( { item => "paper" }, { '$set' => { "size.uom" => "cm", status => "P" }, '$currentDate' => { lastModified => true } } );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
$updateResult = $db->inventory->updateOne( ['item' => 'paper'], [ '$set' => ['size.uom' => 'cm', 'status' => 'P'], '$currentDate' => ['lastModified' => true], ], );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
db.inventory.update_one( {"item": "paper"}, {"$set": {"size.uom": "cm", "status": "P"}, "$currentDate": {"lastModified": True}}, )
client[:inventory].update_one({ item: 'paper'}, { '$set' => { 'size.uom' => 'cm', 'status' => 'P' }, '$currentDate' => { 'lastModified' => true } })
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
collection.updateOne(equal("item", "paper"), combine(set("size.uom", "cm"), set("status", "P"), currentDate("lastModified")) ).execute()
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"cm"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
複数のドキュメントの更新
バージョン 3.2 で追加。
次の例えでは inventory
コレクションの db.collection.updateMany()
メソッドを使用して、 qty
が 50
より小さいすべてのドキュメントをアップデートします。
MongoDB Compass では一度にアップデートできるドキュメントは 1 つだけです。複数のドキュメントをアップデートするには mongosh
または MongoDB ドライバーから MongoDB 配置に接続し、このセクションの例えにある、希望する方法で行います。
次の例えでは inventory
コレクションの IMongoCollection.UpdateMany() メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
次の例えでは inventory
コレクションの Collection.UpdateMany メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
次の例えでは inventory
コレクションの com.mongodb.reactivestreams.client.MongoCollection.updateMany メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
次の例では、inventory
コレクションの com.mongodb.client.MongoCollection.updateMany メソッドを使用して、qty
が 50
未満のすべてのドキュメントを更新します。
バージョン 3.2 で追加。
次の例えでは inventory
コレクションの update_many
メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
次の例えでは inventory
コレクションの Collection.updateMany() メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
以下の例では update_many() メソッドを inventory
コレクションで使用して、qty
が 50
より小さいすべてのドキュメントを更新します。
次の例では inventory
コレクションに updateMany()
メソッドを適用して、qty
が 50
未満のすべてのドキュメントを更新しています。
バージョン 3.2 で追加。
次の例えでは inventory
コレクションの update_many
メソッドを使用して、qty
が 50
より小さいすべてのドキュメントをアップデートします。
以下の例では、update_many() メソッドを inventory
コレクションで使用して、qty
が 50
より小さいすべてのドキュメントを更新します。
以下の例では、updateMany() メソッドを inventory
コレクションで使用して、qty
が 50
より小さいすべてのドキュメントを更新します。
db.inventory.updateMany( { "qty": { $lt: 50 } }, { $set: { "size.uom": "in", status: "P" }, $currentDate: { lastModified: true } } )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
var filter = Builders<BsonDocument>.Filter.Lt("qty", 50); var update = Builders<BsonDocument>.Update.Set("size.uom", "in").Set("status", "P").CurrentDate("lastModified"); var result = collection.UpdateMany(filter, update);
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
result, err := coll.UpdateMany( context.TODO(), bson.D{ {"qty", bson.D{ {"$lt", 50}, }}, }, bson.D{ {"$set", bson.D{ {"size.uom", "cm"}, {"status", "P"}, }}, {"$currentDate", bson.D{ {"lastModified", true}, }}, }, )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
Publisher<UpdateResult> updateManyPublisher = collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")));
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")));
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
await db.inventory.update_many( {"qty": {"$lt": 50}}, {"$set": {"size.uom": "in", "status": "P"}, "$currentDate": {"lastModified": True}}, )
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
await db.collection('inventory').updateMany( { qty: { $lt: 50 } }, { $set: { 'size.uom': 'in', status: 'P' }, $currentDate: { lastModified: true } } );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
# For boolean values, use boolean.pm for 'true' and 'false' $db->coll("inventory")->update_many( { qty => { '$lt' => 50 } }, { '$set' => { "size.uom" => "in", status => "P" }, '$currentDate' => { lastModified => true } } );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
$updateResult = $db->inventory->updateMany( ['qty' => ['$lt' => 50]], [ '$set' => ['size.uom' => 'cm', 'status' => 'P'], '$currentDate' => ['lastModified' => true], ], );
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
db.inventory.update_many( {"qty": {"$lt": 50}}, {"$set": {"size.uom": "in", "status": "P"}, "$currentDate": {"lastModified": True}}, )
client[:inventory].update_many({ qty: { '$lt' => 50 } }, { '$set' => { 'size.uom' => 'in', 'status' => 'P' }, '$currentDate' => { 'lastModified' => true } })
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
collection.updateMany(lt("qty", 50), combine(set("size.uom", "in"), set("status", "P"), currentDate("lastModified")) ).execute()
アップデートの操作:
$set
演算子を使用してsize.uom
フィールドの値を"in"
に、status
フィールドの値を"P"
にアップデートします。$currentDate
演算子を使用してlastModified
フィールドの値を現在の日付にアップデートします。lastModified
フィールドが存在しない場合、$currentDate
はそのフィールドを作成します。詳細については$currentDate
を参照してください。
ドキュメントの置き換え
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを db.collection.replaceOne()
の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
MongoDB Compass ではドキュメントを置き換えることはできません。ドキュメントを置き換えるには mongosh
または MongoDB ドライバーから MongoDB 配置に接続し、このセクションの例に従って、希望する方法で行います。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを IMongoCollection.ReplaceOne() の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを Collection.ReplaceOne の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを com.mongodb.reactivestreams.client.MongoCollection.replaceOne の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを com.mongodb.client.MongoCollection.replaceOne の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除いくドキュメントの内容全体を置き換えるには、完全に新しいドキュメントを replace_one
. の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを Collection.replaceOne() の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、新しいドキュメントを replace_one() の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールド以外のドキュメントの内容全体を置き換えるには、完全に新しいドキュメントを replaceOne()
の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除いくドキュメントの内容全体を置き換えるには、完全に新しいドキュメントを replace_one
. の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、新しいドキュメントを replace_one() の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
_id
フィールドを除くドキュメントのコンテンツ全体を置き換えるには、新しいドキュメントを replaceOne() の 2 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _id
フィールドが不変であるため、 _id
フィールドを省略できます。 ただし、 _id
フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper"
の inventory
コレクションにある最初のドキュメントを置き換えます。
db.inventory.replaceOne( { item: "paper" }, { item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] } )
var filter = Builders<BsonDocument>.Filter.Eq("item", "paper"); var replacement = new BsonDocument { { "item", "paper" }, { "instock", new BsonArray { new BsonDocument { { "warehouse", "A" }, { "qty", 60 } }, new BsonDocument { { "warehouse", "B" }, { "qty", 40 } } } } }; var result = collection.ReplaceOne(filter, replacement);
result, err := coll.ReplaceOne( context.TODO(), bson.D{ {"item", "paper"}, }, bson.D{ {"item", "paper"}, {"instock", bson.A{ bson.D{ {"warehouse", "A"}, {"qty", 60}, }, bson.D{ {"warehouse", "B"}, {"qty", 40}, }, }}, }, )
Publisher<UpdateResult> replaceOnePublisher = collection.replaceOne(eq("item", "paper"), Document.parse("{ item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] }"));
collection.replaceOne(eq("item", "paper"), Document.parse("{ item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] }"));
await db.inventory.replace_one( {"item": "paper"}, { "item": "paper", "instock": [{"warehouse": "A", "qty": 60}, {"warehouse": "B", "qty": 40}], }, )
await db.collection('inventory').replaceOne( { item: 'paper' }, { item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] } );
$db->coll("inventory")->replace_one( { item => "paper" }, { item => "paper", instock => [ { warehouse => "A", qty => 60 }, { warehouse => "B", qty => 40 } ] } );
$updateResult = $db->inventory->replaceOne( ['item' => 'paper'], [ 'item' => 'paper', 'instock' => [ ['warehouse' => 'A', 'qty' => 60], ['warehouse' => 'B', 'qty' => 40], ], ], );
db.inventory.replace_one( {"item": "paper"}, { "item": "paper", "instock": [{"warehouse": "A", "qty": 60}, {"warehouse": "B", "qty": 40}], }, )
client[:inventory].replace_one({ item: 'paper' }, { item: 'paper', instock: [ { warehouse: 'A', qty: 60 }, { warehouse: 'B', qty: 40 } ] })
collection.replaceOne(equal("item", "paper"), Document("""{ item: "paper", instock: [ { warehouse: "A", qty: 60 }, { warehouse: "B", qty: 40 } ] }""") ).execute()
MongoDB Atlas を使用してドキュメントを更新する
注意
MongoDB Atlas UI では一度にアップデートできるドキュメントは 1 つだけです。 複数のドキュメントを更新したり、ドキュメント全体を置き換えたりするには、 mongosh
または MongoDB ドライバーから Atlas 配置に接続し、希望メソッドのこのページの例に従います。
このセクションの例では、サブライ データセットのサンプルを使用します。サンプル データセットを MongoDB Atlas デプロイにロードする方法について詳しくは、「サンプル データのロード」を参照してください。
MongoDB Atlas でドキュメントを更新するには、次の手順に従います。
MongoDB Atlas UI で、プロジェクトの Clusters ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
クエリフィルター ドキュメントを指定します。
Filter フィールドにクエリフィルター ドキュメントを指定できます。クエリフィルター ドキュメントは、クエリ演算子を使用して検索条件を指定します。
次のクエリフィルター ドキュメントを [Filter] 検索バーにコピーし、[Apply] をクリックします。
{ saleDate: { $gte: { $date: "2016-01-01T00:00-00:00" }, $lte: { $date: "2016-01-02T00:00-00:00" } } }
このクエリフィルターは、sample_supplies.sales
コレクション内のドキュメントで、saleDate
が 2016 年 1 月 1 日から 2 日(UTC 時間)の間のものをすべて返します。
Edit a document.
クエリ結果に表示されたドキュメントを編集するには、ドキュメントにカーソルを合わせ、鉛筆アイコンをクリックします。ドキュメント エディターでは、次のことができます。
新しいフィールドを追加
既存のフィールドを削除
フィールドの名前、値、型を編集
特定の変更を元に戻す
詳細な手順については、ドキュメント「ドキュメントの作成、表示、アップデート、削除」を参照してください。
動作
アトミック性
MongoDB のすべての書込み (write) 操作は、単一のドキュメントのレベルでアトミックです。MongoDB とアトミック性の詳細については、「アトミシティとトランザクション」を参照してください。
_id
フィールド
一度設定すると、_id
フィールドの値を更新したり、既存のドキュメントを異なる _id
フィールド値を持つ代替ドキュメントに置き換えたりすることはできません。
フィールドの順序
MongoDB は次のケースを除き、書込み操作でドキュメントのフィールド順序を維持します。
_id
フィールドは常にドキュメントの最初のフィールドとなります。更新にフィールド名
renaming
が含まれる場合、ドキュメント内のフィールド順序が変更されることがあります。
アップサート オプション
updateOne()
、updateMany()
、または replaceOne()
に upsert : true
が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、操作は新しいドキュメントを作成し、挿入します。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
MongoDB Compass では upsert オプションは使用できません。
UpdateOne() の場合、 UpdateMany()、または ReplaceOne() に UpdateOptions 引数インスタンスが含まれており、IsUpsert
オプションが true
に設定され、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
Collection.UpdateOne で Upsert オプションが true に設定され、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
アップデートおよび置換メソッドに UpdateOptions.upsert(true) を指定する UpdateOptions パラメーターが含まれ、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
アップデートおよび置換メソッドに com.mongodb.client.model.UpdateOptions.upsert(true) を指定する com.mongodb.client.model.UpdateOptions パラメーターが含まれ、かつ、指定したフィルタに一致するドキュメントがない場合は、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
update_one
、update_many
、または replace_one
に upsert : true
が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
UpdateOne() の 場合 、 updateMany() 、または replaceOne()upsert : true
options
パラメータ ドキュメント に が含まれており、指定されたフィルターに一致するドキュメントがない場合は、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
update_one()、update_many()、または replace_one() に upsert => true
が含まれており、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合は、この操作によって一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
updateOne()
、updateMany()
、または replaceOne()
に upsert =>
true
が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
update_one
、update_many
、または replace_one
に upsert : true
が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
update_one()、update_many()、または replace_one() に upsert => true
が含まれており、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合は、この操作によって一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
updateOne()、updateMany()、または replaceOne() に upsert => true
が含まれており、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合は、この操作によって一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
書込み (write) 確認応答
書込み保証 (write concern) では、書込み操作に対して MongoDB から要求される確認応答のレベルを指定できます。 詳細については、「 書込み保証 ( write concern) 」を参照してください。