MongoDBの特定のフィールドのみを更新しますか?
特定のフィールドのみを更新するには、$set演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう
>db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"John","EmployeeCountryName":"UK"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ea849d628fa4220163b72")
}
>db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"Larry","EmployeeCountryName":"US"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ea853d628fa4220163b73")
}
>db.updateOnlySpecificFieldDemo.insertOne({"EmployeeName":"David","EmployeeCountryName":"AUS"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9ea85bd628fa4220163b74")
} 以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです
> db.updateOnlySpecificFieldDemo.find().pretty();
これにより、次の出力が生成されます
{
"_id" : ObjectId("5c9ea849d628fa4220163b72"),
"EmployeeName" : "John",
"EmployeeCountryName" : "UK"
}
{
"_id" : ObjectId("5c9ea853d628fa4220163b73"),
"EmployeeName" : "Larry",
"EmployeeCountryName" : "US"
}
{
"_id" : ObjectId("5c9ea85bd628fa4220163b74"),
"EmployeeName" : "David",
"EmployeeCountryName" : "AUS"
} 以下は、特定のフィールドのみを更新するためのクエリです
> db.updateOnlySpecificFieldDemo.update({_id:ObjectId("5c9ea849d628fa4220163b72")},
... {$set: {"EmployeeName":"Robert"}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) これで、フィールド「EmployeeName」を確認できます。「John」が値「Robert」で更新されているかどうかを確認できます。以下はクエリです
> db.updateOnlySpecificFieldDemo.find().pretty();
これにより、次の出力が生成されます
{
"_id" : ObjectId("5c9ea849d628fa4220163b72"),
"EmployeeName" : "Robert",
"EmployeeCountryName" : "UK"
}
{
"_id" : ObjectId("5c9ea853d628fa4220163b73"),
"EmployeeName" : "Larry",
"EmployeeCountryName" : "US"
}
{
"_id" : ObjectId("5c9ea85bd628fa4220163b74"),
"EmployeeName" : "David",
"EmployeeCountryName" : "AUS"
} 上記のサンプル出力を見てください。「EmployeeName」は正常に更新されました。
-
特定のIDに一致するすべてのドキュメントを更新するMongoDBクエリ
updateMany()関数を使用して、フィルター条件に一致するすべてのドキュメントを更新します。ドキュメントを使用してコレクションを作成しましょう- > db.demo476.insertOne({_id:1,"Name":"Chris"}); { "acknowledged" : true, "insertedId" : 1 } > db.demo476.insertOne({_id:2,"Name":"David"}); { "acknowledg
-
MongoDBクエリを実行して、特定のフィールド値のみを更新するにはどうすればよいですか?
例を見て、ドキュメントを使用してコレクションを作成しましょう- > db.demo557.insertOne({Name:"Chris"});{ "acknowledged" : true, "insertedId" : ObjectId("5e8f28e954b4472ed3e8e864") } > db.demo557.insertOne({Name:"David"});{ "acknowledged" :