MongoDB查询仅更新投票(上下)记录中的单个项目?

首先让我们创建一个包含文档的集合-

> db.demo57.insertOne({"Votes":{"VoterName":"Chris","TotalVote":50}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e285bb8cfb11e5c34d8991a")
}
> db.demo57.insertOne({"Votes":{"VoterName":"David","TotalVote":101}});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e285bc3cfb11e5c34d8991b")
}

find()方法的帮助下显示集合中的所有文档-

> db.demo57.find();

这将产生以下输出-

{ "_id" : ObjectId("5e285bb8cfb11e5c34d8991a"), "Votes" : { "VoterName" : "Chris", "TotalVote" : 50 } }
{ "_id" : ObjectId("5e285bc3cfb11e5c34d8991b"), "Votes" : { "VoterName" : "David", "TotalVote" : 101 } }

这是仅更新单个项目的查询(TotalVote)-

> db.demo57.update({"Votes.VoterName":"David" },{ $inc : { "Votes.TotalVote" : 19 } });
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

find()方法的帮助下显示集合中的所有文档-

> db.demo57.find();

这将产生以下输出-

{ "_id" : ObjectId("5e285bb8cfb11e5c34d8991a"), "Votes" : { "VoterName" : "Chris", "TotalVote" : 50 } }
{ "_id" : ObjectId("5e285bc3cfb11e5c34d8991b"), "Votes" : { "VoterName" : "David", "TotalVote" : 120 } }