MongoDB では、更新操作は 1 つ以上のドキュメントでのフィールドの追加、除く、または変更で構成されます。このページでは例を示しています。
次の方法を使用して、MongoDB 内のドキュメントを更新できます。
プログラミング言語のドライバー
集計パイプライン(集計パイプラインでドキュメントを更新するを参照)
➤ 右上の言語の選択ドロップダウンメニューを使用して、以下の例の言語を設定します。
このページでは MongoDB Compass を使用してドキュメントを更新します。
このページの例えでは inventory コレクションを使用しています。inventory コレクションに次のドキュメントを入力します。
このページでは、次のMongoDB Cドライバー メソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次のMongoDB .NET/ C#ドライバー メソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次のMongoDB Go ドライバー関数を使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の Java Reactive Streams ドライバー を使用します メソッド。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の Java 同期ドライバー を使用します メソッド。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次のKotlin コルーチン ドライバーメソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
注意
このガイドの例では、Updates とFilters ビルダ ファクトリー クラスを使用します。これらのクラスは、アップデート ドキュメントを構築し、ドキュメントをフィルタリングするためのヘルパーメソッドを提供します。Updates ビルダの詳細については、「 アップデート ビルダガイド 」を参照してください。Filters ビルダの詳細については、「 フィルター ビルダ のガイド 」を参照してください。
このページでは、次の Motor ドライバー メソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の MongoDB Node.jsドライバー メソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の MongoDB PHP ライブラリメソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次のPyMongo Pythonドライバー メソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の MongoDB Ruby ドライバーメソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
このページでは、次の MongoDB Scalaドライバーメソッドを使用します。
このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。
次の例では、sample_mflixデータベースの moviesコレクションを使用します。サンプルデータセットを配置にロードする方法について詳しくは、サンプル データのロード を参照してください。
[ { "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 を使用してドキュメントを挿入する手順については、「ドキュメントの挿入」を参照してください。
mongoc_collection_t *collection; mongoc_bulk_operation_t *bulk; bson_t *doc; bool r; bson_error_t error; bson_t reply; collection = mongoc_database_get_collection (db, "inventory"); bulk = mongoc_collection_create_bulk_operation_with_opts (collection, NULL); doc = BCON_NEW ( "item", BCON_UTF8 ("canvas"), "qty", BCON_INT64 (100), "size", "{", "h", BCON_DOUBLE (28), "w", BCON_DOUBLE (35.5), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("journal"), "qty", BCON_INT64 (25), "size", "{", "h", BCON_DOUBLE (14), "w", BCON_DOUBLE (21), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("mat"), "qty", BCON_INT64 (85), "size", "{", "h", BCON_DOUBLE (27.9), "w", BCON_DOUBLE (35.5), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("mousepad"), "qty", BCON_INT64 (25), "size", "{", "h", BCON_DOUBLE (19), "w", BCON_DOUBLE (22.85), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("P")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("notebook"), "qty", BCON_INT64 (50), "size", "{", "h", BCON_DOUBLE (8.5), "w", BCON_DOUBLE (11), "uom", BCON_UTF8 ("in"), "}", "status", BCON_UTF8 ("P")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("paper"), "qty", BCON_INT64 (100), "size", "{", "h", BCON_DOUBLE (8.5), "w", BCON_DOUBLE (11), "uom", BCON_UTF8 ("in"), "}", "status", BCON_UTF8 ("D")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("planner"), "qty", BCON_INT64 (75), "size", "{", "h", BCON_DOUBLE (22.85), "w", BCON_DOUBLE (30), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("D")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("postcard"), "qty", BCON_INT64 (45), "size", "{", "h", BCON_DOUBLE (10), "w", BCON_DOUBLE (15.25), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("sketchbook"), "qty", BCON_INT64 (80), "size", "{", "h", BCON_DOUBLE (14), "w", BCON_DOUBLE (21), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } doc = BCON_NEW ( "item", BCON_UTF8 ("sketch pad"), "qty", BCON_INT64 (95), "size", "{", "h", BCON_DOUBLE (22.85), "w", BCON_DOUBLE (30.5), "uom", BCON_UTF8 ("cm"), "}", "status", BCON_UTF8 ("A")); r = mongoc_bulk_operation_insert_with_opts (bulk, doc, NULL, &error); bson_destroy (doc); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; } /* "reply" is initialized on success or error */ r = (bool) mongoc_bulk_operation_execute (bulk, &reply, &error); if (!r) { MONGOC_ERROR ("%s\n", error.message); }
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 := []any{ 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' }") ));
collection.insertMany( listOf( Document("item", "canvas") .append("qty", 100) .append("size", Document("h", 28).append("w", 35.5).append("uom", "cm")) .append("status", "A"), Document("item", "journal") .append("qty", 25) .append("size", Document("h", 14).append("w", 21).append("uom", "cm")) .append("status", "A"), Document("item", "mat") .append("qty", 85) .append("size", Document("h", 27.9).append("w", 35.5).append("uom", "cm")) .append("status", "A"), Document("item", "mousepad") .append("qty", 25) .append("size", Document("h", 19).append("w", 22.85).append("uom", "cm")) .append("status", "P"), Document("item", "notebook") .append("qty", 50) .append("size", Document("h", 8.5).append("w", 11).append("uom", "in")) .append("status", "P"), Document("item", "paper") .append("qty", 100) .append("size", Document("h", 8.5).append("w", 11).append("uom", "in")) .append("status", "D"), Document("item", "planner") .append("qty", 75) .append("size", Document("h", 22.85).append("w", 30).append("uom", "cm")) .append("status", "D"), Document("item", "postcard") .append("qty", 45) .append("size", Document("h", 10).append("w", 15.25).append("uom", "cm")) .append("status", "A"), Document("item", "sketchbook") .append("qty", 80) .append("size", Document("h", 14).append("w", 21).append("uom", "cm")) .append("status", "A"), Document("item", "sketch pad") .append("qty", 95) .append("size", Document("h", 22.85).append("w", 30.5).append("uom", "cm")) .append("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' } ]);
$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 でドキュメントをアップデートするには、対象のドキュメントにカーソルを合わせ、鉛筆アイコンをクリックします。
![[edit document] をクリック](/ja-jp/docs/docs_static_manual/_next/static/images/manual/v7.0/images/compass-update-doc-button.png)
鉛筆アイコンをクリックすると、ドキュメントは編集モードになります。

このドキュメントを変更するには、変更したいアイテムをクリックして値を変更します。
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を使用すると、フィールド値を変更してドキュメントを更新できます。
ドライバーは com.mongodb を提供します。ドキュメントのアップデートの作成を容易にするクライアント.model.Updatesクラス。次のコードでは、 Updatesビルダクラスのメソッドを使用する更新ドキュメントが示されています。
combine(set(<field1>, <value1>), set(<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などの一部の更新演算子は、フィールドがない場合にフィールドを作成します。 詳細については、個々の更新演算子のリファレンスを参照してください。
単一ドキュメントの更新
次の例えでは movies コレクションの db.collection.updateOne() メソッドを使用して、title が "The Godfather" に等しい最初のドキュメントをアップデートします。
次の例えでは MongoDB Compass を使用して、 inventory コレクション内の item: paper の単一のドキュメントを変更する方法を示しています。
注意
この例では Compass テーブル ビュー を使用してドキュメントを変更します。MongoDB Compass リスト ビュー を使用した編集プロセスも同様のアプローチとなります。
Compass のテーブル ビューとリスト ビューの違いの詳細については、Compass のドキュメントを参照してください。
次の例では、mongoc_collection_update_one 関数を使用して、inventory コレクションの item が "paper" に等しい最初のドキュメントを更新します。
次の例では com.mongodb.reactivestreams を使用します。 コレクションのクライアント.MongoCollection.updateOneinventory で、 が と等しい 最初のドキュメントを更新します。item"paper"
次の例ではcom.mongodb を使用しています。クライアント.MongoCollection.updateOneコレクションで、 inventoryが と等しい 最初のドキュメントを更新します。item"paper"
次の例では、update_one inventoryコレクションの メソッドを使用して、 が に等しい 最初のドキュメントを更新します。item"paper"
次の例では、updateOne() inventoryコレクションの メソッドを使用して、 が と等しい 最初のドキュメントを更新します。item"paper"
次の例では、update_one inventoryコレクションの メソッドを使用して、 が に等しい 最初のドキュメントを更新します。item"paper"
以下の例ではupdate_one() inventoryメソッドを コレクションで使用して、 が に等しい 最初のドキュメントを更新します。item"paper"
以下の例では、updateOne() メソッドを inventory コレクションで使用して、item が "paper" に等しい最初のドキュメントを更新します。
db.movies.updateOne( { title: "The Godfather" }, { $set: { rated: "PG", "tomatoes.viewer.rating": 4.5 }, $currentDate: { lastupdated: true } } )
アップデートの操作:
$set演算子を使用してsize.uomフィールドの値を"cm"に、statusフィールドの値を"P"にアップデートします。$currentDate演算子を使用してlastModifiedフィールドの値を現在の日付にアップデートします。lastModifiedフィールドが存在しない場合、$currentDateはそのフィールドを作成します。詳細については$currentDateを参照してください。
ターゲット ドキュメントを次のように変更します。
statusフィールドをDからPに変更します。size.uomフィールドをinからcmに変更します。今日の日付を値とする
lastModifiedという新しいフィールドを追加します。
テーブル ビューにアクセスするには、上部のナビゲーションにある [Table] ボタンをクリックします。
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 に日付値を手動で入力する必要があります。
mongoc_collection_t *collection; bson_t *selector; bson_t *update; bool r; bson_error_t error; collection = mongoc_database_get_collection (db, "inventory"); selector = BCON_NEW ("item", BCON_UTF8 ("paper")); update = BCON_NEW ( "$set", "{", "size.uom", BCON_UTF8 ("cm"), "status", BCON_UTF8 ("P"), "}", "$currentDate", "{", "lastModified", BCON_BOOL (true), "}"); r = mongoc_collection_update_one(collection, selector, update, NULL, NULL, &error); bson_destroy (selector); bson_destroy (update); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; }
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を参照してください。
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を参照してください。
$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を参照してください。
複数のドキュメントの更新
次の例ではdb.collection.updateMany()メソッドを使用して、moviesコレクションのnum_mflix_commentsが100より大きいすべてのドキュメントを更新します。
MongoDB Compass では一度にアップデートできるドキュメントは 1 つだけです。
次の例では コレクションで mongoc_collection_update_many inventory関数を使用して、qty が より小さいすべてのドキュメントをアップデートします。50
次の例えでは、inventory コレクションの com.mongodb.reactivestreams.client.MongoCollection.updateMany メソッドを使用して、qty が 50 より小さいすべてのドキュメントを更新します。
次の例ではcom.mongodb を使用しています。 コレクションのクライアント.MongoCollection.updateMany メソッドを使用して、 がinventory より小さいすべてのドキュメントを更新します。qty50
次の例ではupdate_many inventoryコレクションの メソッドを使用して、 がqty 50より小さいすべてのドキュメントをアップデートします。
次の例ではupdateMany() inventoryコレクションの メソッドを使用して、 がqty 50より小さいすべてのドキュメントをアップデートします。
次の例ではupdate_many inventoryコレクションの メソッドを使用して、 がqty 50より小さいすべてのドキュメントをアップデートします。
db.movies.updateMany( { "num_mflix_comments": { $gt: 100 } }, { $set: { popular: true }, $currentDate: { lastupdated: true } } )
複数のドキュメントをアップデートするには、 またはMongoDBドライバーからMongoDBデプロイに接続し、このセクションの例えにある、希望する方法で行います。mongosh
mongoc_collection_t *collection; bson_t *selector; bson_t *update; bool r; bson_error_t error; collection = mongoc_database_get_collection (db, "inventory"); selector = BCON_NEW ( "qty", "{", "$lt", BCON_INT64 (50), "}"); update = BCON_NEW ( "$set", "{", "size.uom", BCON_UTF8 ("in"), "status", BCON_UTF8 ("P"), "}", "$currentDate", "{", "lastModified", BCON_BOOL (true), "}"); r = mongoc_collection_update_many(collection, selector, update, NULL, NULL, &error); bson_destroy (selector); bson_destroy (update); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; }
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を参照してください。
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を参照してください。
$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フィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは title: "The Godfather" の movies コレクションにある最初のドキュメントを置き換えます。
MongoDB Compass ではドキュメントを置き換えることはできません。
_idフィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントをmongoc_collection_replace_one の 3 番目の引数として渡します。
ドキュメントを置き換える場合、置き換えドキュメントはフィールドと値のペアのみで構成される必要があります。 置き換えドキュメントには更新演算子の式を含めることはできません。
置き換えドキュメントには、元のドキュメントとは異なるフィールドを含めることができます。 置き換えドキュメントでは、 _idフィールドが不変であるため、 _idフィールドを省略できます。 ただし、 _idフィールドを含める場合は、現在値と同じ値である必要があります。
次の例えでは item: "paper" の inventory コレクションにある最初のドキュメントを置き換えます。
_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フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを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フィールドを除くドキュメントのコンテンツ全体を置き換えるには、完全に新しいドキュメントを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.movies.replaceOne( { title: "The Godfather" }, { title: "The Godfather", plot: "Updated plot summary", year: 1972, rated: "R", runtime: 175 } )
ドキュメントを置き換えるには、mongosh またはMongoDBドライバーからMongoDBデプロイに接続し、このセクションの例に従って、希望する方法で行います。
mongoc_collection_t *collection; bson_t *selector; bson_t *replacement; bool r; bson_error_t error; collection = mongoc_database_get_collection (db, "inventory"); selector = BCON_NEW ("item", BCON_UTF8 ("paper")); replacement = BCON_NEW ( "item", BCON_UTF8 ("paper"), "instock", "[", "{", "warehouse", BCON_UTF8 ("A"), "qty", BCON_INT64 (60), "}","{", "warehouse", BCON_UTF8 ("B"), "qty", BCON_INT64 (40), "}", "]"); /* MONGOC_UPDATE_NONE means "no special options" */ r = mongoc_collection_replace_one(collection, selector, replacement, NULL, NULL, &error); bson_destroy (selector); bson_destroy (replacement); if (!r) { MONGOC_ERROR ("%s\n", error.message); goto done; }
必要に応じて、次のメソッドを呼び出して、開いているリソースをクリーンアップします。
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 } ] }"));
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 } ] } );
$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 メニューからプロジェクトを選択します。
サイドバーで、 Database見出しの下の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 フィールド値を持つ代替ドキュメントに置き換えたりすることはできません。
冪等操作
updateMany()メソッドは冪等操作のみに使用します。
フィールドの順序
MongoDB は次のケースを除き、書込み操作でドキュメントのフィールド順序を維持します。
_idフィールドは常にドキュメントの最初のフィールドとなります。更新にフィールド名
renamingが含まれる場合、ドキュメント内のフィールド順序が変更されることがあります。
アップサート オプション
updateOne()、updateMany()、または replaceOne() に upsert : true が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、操作は新しいドキュメントを作成し、挿入します。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
MongoDB Compass では upsert オプションは使用できません。
mongoc_collection_update_one、mongoc_collection_update_many、またはmongoc_collection_replace_one に upsert : true が含まれておりかつ指定されたフィルターに一致するドキュメントがない場合、操作は新しいドキュメントを作成し挿入します。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、関数の個々の参照ページを参照してください。
UpdateOne()、UpdateMany()、または ReplaceOne() IsUpserttrueに、 オプションが に設定されている UpdateOptions 引数インスタンスが含まれており、 かつ 、指定されたフィルターに一致するドキュメントがない場合、操作新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
Collection.UpdateOne で Upsert オプションが true に設定され、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
アップデートおよび置換メソッドに UpdateOptions.upsert(true) を指定する UpdateOptions パラメーターが含まれ、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
アップデートおよび置換メソッドに com.mongodb.client.model.UpdateOptions.upsert(true) を指定する com.mongodb.client.model.UpdateOptions パラメーターが含まれ、かつ、指定したフィルタに一致するドキュメントがない場合は、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
アップデートおよび置換メソッドに com.mongodb が含まれる場合、クライアント.model.UpdateOptions パラメーターで upsert(true)が指定され、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
updateOne()、 updateMany()、または replaceOne() upsert : trueoptionsの パラメータードキュメントに が含まれており、 かつ 指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
updateOne()、updateMany() 、またはreplaceOne() にupsert => true が含まれており、 かつ 、指定されたフィルターに一致するドキュメントがない場合、操作新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
update_one()、update_many()、または replace_one() にupsert => true が含まれており、 かつ 指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
updateOne()、 updateMany()、または replaceOne() upsert => trueに が含まれており、 かつ 指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。
作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。
書込み (write) 確認応答
書込み保証 (write concern) では、書込み操作に対して MongoDB から要求される確認応答のレベルを指定できます。詳細については、「書込み保証 (write concern)」を参照してください。