Docs Menu
Docs Home
/ / /
Rust ドライバー
/

複数のドキュメントの挿入

インスタンスで insert_many() メソッドを呼び出すことで、複数のドキュメントをコレクションに挿入できます。Collection

1 つ以上のドキュメントを含むベクトルをinsert_many()メソッドに渡して、コレクションに挿入します。 These documents must be instances of the type that you parameterized your Collection instance with. たとえば、コレクションをMyStruct構造体でパラメーター化した場合は、 MyStructインスタンスのベクトルをinsert_many()メソッドのパラメーターとして渡します。

Tip

単一ドキュメントを挿入するには、 insert_one() メソッド の使用を検討してください 使用して複数のドキュメントを挿入できます。このメソッドを使用する実行可能なコード例については、 ドキュメントの挿入 の使用例を参照してください。

insert_many()メソッドは InsertManyResult _idを返します 挿入されたドキュメントの 値を参照する タイプ。

コレクションにドキュメントを挿入する方法の詳細については、「ドキュメントの挿入 」ガイドを参照してください。

この例では、 sample_restaurantsデータベースの restaurantsコレクションに複数のドキュメントを挿入します。この例では、ドキュメントのベクトルを insert_many() メソッドに渡すことで、namecuisineフィールド値を持つドキュメントを挿入します。

これらのドキュメントは、Document 型またはカスタムデータ型のインスタンスとして挿入できます。コレクションのデータを表すデータ型を指定するには、強調表示された行に対して次のアクションを実行します。

  • コレクションドキュメントをBSONドキュメントとしてアクセスして挿入するには、<T> 型パラメータを <Document> に置き換え、<struct or doc> プレースホルダーを insert_docs に置き換えます。

  • Restaurant 構造体のインスタンスとしてコレクションドキュメントにアクセスして挿入するには、<T> 型パラメータを <Restaurant> に置き換え、<struct or doc> プレースホルダーを insert_structs に置き換えます。 Restaurant 構造体は、コードファイルの上部で定義されています。

AsynchronousSynchronous各実行時に対応するコードを表示するには、 タブまたは タブを選択します。

use mongodb::{
bson::{doc, Document},
Client,
Collection
};
use serde::{ Deserialize, Serialize };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}
#[tokio::main]
async fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri).await?;
// Replace <T> with the <Document> or <Restaurant> type parameter
let my_coll: Collection<T> = client
.database("sample_restaurants")
.collection("restaurants");
let insert_docs = vec! [
doc! {
"name": "While in Kathmandu",
"cuisine": "Nepalese",
},
doc! {
"name": "Cafe Himalaya",
"cuisine": "Nepalese",
}
];
let insert_structs = vec! [
Restaurant {
name: "While in Kathmandu".to_string(),
cuisine: "Nepalese".to_string(),
},
Restaurant {
name: "Cafe Himalaya".to_string(),
cuisine: "Nepalese".to_string(),
}
];
// Replace <structs or docs> with the insert_structs or insert_docs variable
let insert_many_result = my_coll.insert_many(<structs or docs>).await?;
println!("Inserted documents with _ids:");
for (_key, value) in &insert_many_result.inserted_ids {
println!("{}", value);
}
Ok(())
}
Inserted documents with _ids:
ObjectId("...")
ObjectId("...")
use mongodb::{
bson::{doc, Document},
sync::{Client, Collection}
};
use serde::{ Deserialize, Serialize };
#[derive(Serialize, Deserialize, Debug)]
struct Restaurant {
name: String,
cuisine: String,
}
fn main() -> mongodb::error::Result<()> {
let uri = "<connection string>";
let client = Client::with_uri_str(uri)?;
// Replace <T> with the <Document> or <Restaurant> type parameter
let my_coll: Collection<T> = client
.database("sample_restaurants")
.collection("restaurants");
let insert_docs = vec! [
doc! {
"name": "While in Kathmandu",
"cuisine": "Nepalese",
},
doc! {
"name": "Cafe Himalaya",
"cuisine": "Nepalese",
}
];
let insert_structs = vec! [
Restaurant {
name: "While in Kathmandu".to_string(),
cuisine: "Nepalese".to_string(),
},
Restaurant {
name: "Cafe Himalaya".to_string(),
cuisine: "Nepalese".to_string(),
}
];
// Replace <structs or docs> with the insert_structs or insert_docs variable
let insert_many_result = my_coll.insert_many(<structs or docs>).run()?;
println!("Inserted documents with _ids:");
for (_key, value) in &insert_many_result.inserted_ids {
println!("{}", value);
}
Ok(())
}
Inserted documents with _ids:
ObjectId("...")
ObjectId("...")

戻る

1 つを挿入