MongoDB 查詢以更換陣列中的值?


使用 $set 來替換陣列中的值。我們首先用文件建立一個集合 −

> db.replaceValueInArrayDemo.insertOne({"StudentScores":[45,56,78]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f0421a844af18acdffb7")
}
> db.replaceValueInArrayDemo.insertOne({"StudentScores":[33,90,67]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f0521a844af18acdffb8")
}

以下是使用 find() 方法從集合顯示所有文件的查詢 −

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

這將產生以下結果 −

{
   "_id" : ObjectId("5cd7f0421a844af18acdffb7"),
   "StudentScores" : [
      45,
      56,
      78
   ]
}
{
   "_id" : ObjectId("5cd7f0521a844af18acdffb8"),
   "StudentScores" : [
      33,
      90,
      67
   ]
}

以下是替換陣列中值查詢 −

> db.replaceValueInArrayDemo.update({_id: ObjectId("5cd7f0421a844af18acdffb7"), StudentScores:45}, {$set: {'StudentScores.$': 99}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

讓我們再次檢查文件 −

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

這將產生以下結果 −

{
   "_id" : ObjectId("5cd7f0421a844af18acdffb7"),
   "StudentScores" : [
      99,
      56,
      78
   ]
}
{
   "_id" : ObjectId("5cd7f0521a844af18acdffb8"),
   "StudentScores" : [
      33,
      90,
      67
   ]
}

更新時間: 30-Jul-2019

1 千次瀏覽

啟動你的 職業生涯

完成課程可獲得認證

立即開始
廣告
© . All rights reserved.