Docs Menu
Docs Home
/
MongoDBマニュアル
/

Update Documents

項目一覧

  • コレクション内のドキュメントの更新
  • MongoDB Atlas を使用してドキュメントを更新する
  • 動作

次の方法を使用して、MongoDB 内のドキュメントを更新できます。

  • プログラミング言語のドライバー。

  • MongoDB Atlas UI 。詳しくは、「MongoDB Atlas を使用してドキュメントを更新する」を参照してください。

  • MongoDB Compass


➤ 右上の言語の選択ドロップダウンメニューを使用して、以下の例の言語を設定します。


このページでは、次の mongosh メソッドを使用します。

  • db.collection.updateOne(<filter>, <update>, <options>)

  • db.collection.updateMany(<filter>, <update>, <options>)

  • db.collection.replaceOne(<filter>, <update>, <options>)

このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。

このページでは MongoDB Compass を使用してドキュメントをアップデートします。

このページの例えでは inventory コレクションを使用しています。inventory コレクションに次のドキュメントを入力します。

このページでは、次の MongoDB C# ドライバーメソッドを使用します。

このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。

このページでは、次のMongoDB Go ドライバー関数を使用します。

このページの例では、inventory コレクションを使用しています。MongoDB インスタンスのテスト データベースに接続し、inventory コレクションを作成します。

このページでは、次の Java Reactive Streams ドライバー を使用します メソッド。

このページの例では、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 でドキュメントをアップデートするには、対象のドキュメントにカーソルを合わせ、鉛筆アイコンをクリックします。

[edit document] をクリック

鉛筆アイコンをクリックすると、ドキュメントは編集モードになります。

ドキュメント編集モード

このドキュメントを変更するには、変更したいアイテムをクリックして値を変更します。

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 という新しいフィールドを追加します。

  1. テーブル ビューにアクセスするには、上部のナビゲーションにある [Table] ボタンをクリックします。

    テーブルビューにアクセス
  2. Compass クエリ バーを使用して、対象のドキュメントを見つけます。

    次のフィルター ドキュメントをクエリ バーにコピーし、[Find] をクリックします。

    { item: "paper" }
    Paper ドキュメントを検索
  3. status フィールドにカーソルを合わせ、ドキュメントの右側に表示される鉛筆アイコンをクリックして編集モードを開始します。

    編集ボタンをクリック
  4. フィールドの値を "P" に変更します。

  5. 変更を保存するには、フィールドの下の Update ボタンをクリックします。

  6. size フィールドにカーソルを合わせ、フィールドの右側に表示される外向きの矢印をクリックすると、新しいタブが開き、size オブジェクト内のフィールドが表示されます。

    オブジェクトのサイズを拡大
  7. status フィールドの編集については手順 3-5 の説明と同じプロセスを使用して、size.uom フィールドの値を "cm" に変更します。

  8. inventory というラベルの付いたテーブルの上にある左端のタブをクリックすると元のテーブルビューに戻り、最上位のドキュメントが表示されます。

    インベントリ タブをクリック
  9. status フィールドにカーソルを合わせ、ドキュメントの右側に表示される鉛筆アイコンをクリックして編集モードを再度開始します。

  10. status フィールド内、編集メニューに表示される plus button アイコンの順にクリックします。

    プラスボタンの下に表示される Add Field After status ボタンをクリックします。

    ステータスの後にフィールドを追加
  11. 今日の日付を値とする lastModified という新しいフィールドを追加します。フィールドタイプを Date に設定します。

    更新を送信
  12. 変更を保存するには、フィールドの下の 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() メソッドを使用して、 qty50 より小さいすべてのドキュメントをアップデートします。

MongoDB Compass では一度にアップデートできるドキュメントは 1 つだけです。複数のドキュメントをアップデートするには mongosh または MongoDB ドライバーから MongoDB 配置に接続し、このセクションの例えにある、希望する方法で行います。

次の例えでは inventory コレクションの IMongoCollection.UpdateMany() メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

次の例えでは inventory コレクションの Collection.UpdateMany メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

次の例えでは inventory コレクションの com.mongodb.reactivestreams.client.MongoCollection.updateMany メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

次の例では、inventory コレクションの com.mongodb.client.MongoCollection.updateMany メソッドを使用して、qty50 未満のすべてのドキュメントを更新します。

バージョン 3.2 で追加

次の例えでは inventory コレクションの update_many メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

次の例えでは inventory コレクションの Collection.updateMany() メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

以下の例では update_many() メソッドを inventory コレクションで使用して、qty50 より小さいすべてのドキュメントを更新します。

次の例では inventory コレクションに updateMany() メソッドを適用して、qty50 未満のすべてのドキュメントを更新しています。

バージョン 3.2 で追加

次の例えでは inventory コレクションの update_many メソッドを使用して、qty50 より小さいすべてのドキュメントをアップデートします。

以下の例では、update_many() メソッドを inventory コレクションで使用して、qty50 より小さいすべてのドキュメントを更新します。

以下の例では、updateMany() メソッドを inventory コレクションで使用して、qty50 より小さいすべてのドキュメントを更新します。

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 UI では一度にアップデートできるドキュメントは 1 つだけです。 複数のドキュメントを更新したり、ドキュメント全体を置き換えたりするには、 mongoshまたは MongoDB ドライバーから Atlas 配置に接続し、希望メソッドのこのページの例に従います。

このセクションの例では、サブライ データセットのサンプルを使用します。サンプル データセットを MongoDB Atlas デプロイにロードする方法について詳しくは、「サンプル データのロードを参照してください。

MongoDB Atlas でドキュメントを更新するには、次の手順に従います。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。

  3. まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。

    [ Clusters (クラスター) ] ページが表示されます。

2
  1. サンプル データを含むクラスターで、[ Browse Collections ] をクリックします。

  2. 左側のナビゲーション ペインで、sample_supplies データベースを選択します。

  3. sales コレクションを選択します。

3

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 時間)の間のものをすべて返します。

4

クエリ結果に表示されたドキュメントを編集するには、ドキュメントにカーソルを合わせ、鉛筆アイコンをクリックします。ドキュメント エディターでは、次のことができます。

  • 新しいフィールドを追加

  • 既存のフィールドを削除

  • フィールドの名前、値、型を編集

  • 特定の変更を元に戻す

詳細な手順については、ドキュメント「ドキュメントの作成、表示、アップデート、削除」を参照してください。

5

変更を確定して保存するには、[Update] ボタンをクリックします。

MongoDB のすべての書込み (write) 操作は、単一のドキュメントのレベルでアトミックです。MongoDB とアトミック性の詳細については、「アトミシティとトランザクション」を参照してください。

一度設定すると、_id フィールドの値を更新したり、既存のドキュメントを異なる _id フィールド値を持つ代替ドキュメントに置き換えたりすることはできません。

MongoDB は次のケースを除き、書込み操作でドキュメントのフィールド順序を維持します。

  • _id フィールドは常にドキュメントの最初のフィールドとなります。

  • 更新にフィールド名 renaming が含まれる場合、ドキュメント内のフィールド順序が変更されることがあります。

updateOne()updateMany()、または replaceOne()upsert : true が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、操作は新しいドキュメントを作成し、挿入します。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

MongoDB Compass では upsert オプションは使用できません。

UpdateOne() の場合、 UpdateMany()、または ReplaceOne()UpdateOptions 引数インスタンスが含まれており、IsUpsert オプションが true に設定され、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

Collection.UpdateOneUpsert オプションが true に設定され、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

アップデートおよび置換メソッドに UpdateOptions.upsert(true) を指定する UpdateOptions パラメーターが含まれ、かつ、指定されたフィルターに一致するドキュメントがない場合、操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、操作は一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

アップデートおよび置換メソッドに com.mongodb.client.model.UpdateOptions.upsert(true) を指定する com.mongodb.client.model.UpdateOptions パラメーターが含まれ、かつ、指定したフィルタに一致するドキュメントがない場合は、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

update_oneupdate_many、または replace_oneupsert : 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_oneupdate_many、または replace_oneupsert : true が含まれており、かつ、指定されたフィルターに一致するドキュメントがない場合、オペレーションによって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合、オペレーションは一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

update_one()update_many()、または replace_one()upsert => true が含まれており、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合は、この操作によって一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

updateOne()updateMany()、または replaceOne()upsert => true が含まれており、かつ指定されたフィルターに一致するドキュメントがない場合、この操作によって新しいドキュメントが作成され、挿入されます。一致するドキュメントがある場合は、この操作によって一致する 1 つまたは複数のドキュメントを変更または置換します。

作成された新しいドキュメントの詳細については、メソッドの個々のリファレンスページを参照してください。

書込み保証 (write concern) では、書込み操作に対して MongoDB から要求される確認応答のレベルを指定できます。 詳細については、「 書込み保証 ( write concern) 」を参照してください。

Tip

以下も参照してください。

Tip

以下も参照してください。

戻る

mongoshでのカーソルの反復処理