MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

変数インデックスによってMongoDBドキュメントの配列を更新しますか?


MongoDBドキュメントの配列を変数インデックスで更新するには、次の構文を使用します。ここで、インデックス値のyourIndexValue。yourIndexVariableNameはインデックスの変数名です-

var yourIndexVariableName= yourIndexValue,
anyVariableName= { "$set": {} };
yourVariableName["$set"]["yourFieldName."+yourIndexVariableName] = "yourValue";
db.yourCollectionName.update({ "_id":  yourObjectId}, yourVariableName);

まず、ドキュメントを使用してコレクションを作成しましょう-

> db.updateByVariableDemo.insertOne({"StudentSubjects":["MySQL","Java","SQL Server","PL/SQL"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd553c37924bb85b3f4893a")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.updateByVariableDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd553c37924bb85b3f4893a"),
   "StudentSubjects" : [
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}

以下は、MongoDBドキュメントの配列を変数インデックス-

で更新するためのクエリです。
> var indexValue = 1,
... valueToUpdate= { "$set": {} };
> valueToUpdate["$set"]["StudentSubjects."+indexValue] = "MongoDB";
MongoDB
> db.updateByVariableDemo.update({ "_id":  ObjectId("5cd553c37924bb85b3f4893a") }, valueToUpdate)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ドキュメントをもう一度表示しましょう-

> db.updateByVariableDemo.find().pretty();

これにより、次の出力が生成されます-

{
   "_id" : ObjectId("5cd553c37924bb85b3f4893a"),
   "StudentSubjects" : [
      "MySQL",
      "MongoDB",
      "SQL Server",
      "PL/SQL"
   ]
}

  1. MongoDBの配列内の要素を更新しますか?

    配列内の要素を更新するには、MongoDBで$setを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo494.insertOne( ... { ... ...    "CollegeDetails" : [ ...       { ...          "CollegeName" : "MIT", ...          "Fee

  2. ネストされたドキュメントを更新するためのMongoDBクエリ

    ドキュメントを使用してコレクションを作成しましょう- > db.demo595.insertOne( { "Information": [    { "_id": new ObjectId(), Name:"Chris" },    { _id:new ObjectId(), Name:"Robert" } ] } ); {    "acknowledged" : true,    "inserted