Docs Menu
Docs Home
/ / /
Node.js
/ /

ドキュメントの置き換え

collection.replaceOne() メソッドを使用して単一のドキュメントを置き換えることができます使用して複数のドキュメントを挿入できます。 replaceOne()はクエリ ドキュメントと置換ドキュメントを受け入れます。 クエリがコレクション内のドキュメントと一致する場合は、クエリに一致する最初のドキュメントが指定された置換ドキュメントで置き換えられます。 この操作により、元のドキュメント内のすべてのフィールドと値が削除され、置換ドキュメントのフィールドと値に置き換えられます。 置換ドキュメントで_idに明示的に指定しない限り、 _idフィールドの値は同じままです。

任意のoptionsパラメータを使用して、 upsertなどの追加オプションを指定できます。 upsertオプション フィールドをtrueに設定すると、クエリに一致するドキュメントがない場合、このメソッドは新しいドキュメントを挿入します。

replaceOne()メソッドは、実行中にエラーが発生した場合に例外をスローします。 たとえば、一意なインデックスのルールに違反する値を指定すると、 replaceOne()duplicate key errorをスローします。

注意

アプリケーションで更新後にドキュメントが必要な場合は、 collection.findOneAndReplace()メソッドとして、 replaceOne()と同様のインターフェースを持つものです。 findOneAndReplace()を構成して、元の一致したドキュメントまたは置換ドキュメントを返すことができます。

注意

この例を使用して、MongoDB のインスタンスに接続し、サンプルデータを含むデータベースと交流できます。MongoDB インスタンスへの接続とサンプルデータセットの読み込みの詳細については、 使用例ガイドを参照してください。

1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8async function run() {
9 try {
10
11 // Get the database and collection on which to run the operation
12 const database = client.db("sample_mflix");
13 const movies = database.collection("movies");
14
15 // Create a query for documents where the title contains "The Cat from"
16 const query = { title: { $regex: "The Cat from" } };
17
18 // Create the document that will replace the existing document
19 const replacement = {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 };
22
23 // Execute the replace operation
24 const result = await movies.replaceOne(query, replacement);
25
26 // Print the result
27 console.log(`Modified ${result.modifiedCount} document(s)`);
28 } finally {
29 await client.close();
30 }
31}
32run().catch(console.dir);
1import { MongoClient } from "mongodb";
2
3// Replace the uri string with your MongoDB deployment's connection string.
4const uri = "<connection string uri>";
5
6const client = new MongoClient(uri);
7
8interface Movie {
9 title: string;
10}
11
12async function run() {
13 try {
14 const database = client.db("sample_mflix");
15 const movies = database.collection<Movie>("movies");
16
17 const result = await movies.replaceOne(
18 { title: { $regex: "The Cat from" } },
19 {
20 title: `The Cat from Sector ${Math.floor(Math.random() * 1000) + 1}`,
21 }
22 );
23 console.log(`Modified ${result.modifiedCount} document(s)`);
24 } finally {
25 await client.close();
26 }
27}
28run().catch(console.dir);

上記の例を実行すると、次の出力が表示されます。

Modified 1 document(s)

戻る

複数のドキュメントの更新