在 MongoDB 中使用搜索條件更新最後一行?


要使用搜索條件更新,請在 MongoDB 中使用 findAndModify()。讓我們建立一個包含文件的集合 -

> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889fdb987b6e0e9d18f591")
}
> db.demo516.insertOne({"Name":"John","Age":23,"Score":67});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ff1987b6e0e9d18f592")
}
> db.demo516.insertOne({"Name":"John","Age":22,"Score":56});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ff3987b6e0e9d18f593")
}
> db.demo516.insertOne({"Name":"John","Age":22,"Score":66});{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e889ffa987b6e0e9d18f594")
}

藉助 find() 方法顯示集合中的所有文件 -

> db.demo516.find();

這將產生以下輸出 -

{ "_id" : ObjectId("5e889fdb987b6e0e9d18f591"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ff1987b6e0e9d18f592"), "Name" : "John", "Age" : 23, "Score" : 67 }
{ "_id" : ObjectId("5e889ff3987b6e0e9d18f593"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ffa987b6e0e9d18f594"), "Name" : "John", "Age" : 22, "Score" : 66 }

以下是對 MongoDB 中使用搜索條件更新最後一行 的查詢 -

> db.demo516.findAndModify({
... query: {Name: "John", Age: 22},
... sort: {_id: -1},
... update: {$set: {Score: 98}},
... new: true
... })
{
   "_id" : ObjectId("5e889ffa987b6e0e9d18f594"),
   "Name" : "John",
   "Age" : 22,
   "Score" : 98
}

藉助 find() 方法顯示集合中的所有文件 -

> db.demo516.find();

這將產生以下輸出 -

{ "_id" : ObjectId("5e889fdb987b6e0e9d18f591"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ff1987b6e0e9d18f592"), "Name" : "John", "Age" : 23, "Score" : 67 }
{ "_id" : ObjectId("5e889ff3987b6e0e9d18f593"), "Name" : "John", "Age" : 22, "Score" : 56 }
{ "_id" : ObjectId("5e889ffa987b6e0e9d18f594"), "Name" : "John", "Age" : 22, "Score" : 98 }

更新於:2020 年 5 月 13 日

319 次瀏覽

開啟你的 職業

完成課程認證

開始學習
廣告
© . All rights reserved.