这就是我在 mongodb 集合中存储每个元素的方式。
{
_id: 'iTIBHxAb8',
title: 'happy birthday',
votesObject: { happy: 0, birthday: 0 }
}
我做了一件非常肮脏的工作,对此我一点也不感到自豪,这就是......
//queryObject= {id,chosenvalue};
let queryObject = req.query;
let id = Object.keys(queryObject)[0];
let chosenValue = queryObject[id];
db.collection("voting")
.find({ _id: id })
.toArray((err, data) => {
let { votesObject } = data[0];
votesObject[chosenValue] += 1;
data[0].votesObject = votesObject;
db.collection("voting").replaceOne({ _id: id }, data[0]);
res.redirect("/polls?id=" + id);
});
所以基本上它的作用是从上面的示例中获取可能是“快乐”或“生日”的选定值。
从集合中查找与 id 匹配的完整对象。
从找到的对象中增加所选值。
使用replaceOne()将之前的对象替换为新更改的对象。
每次执行这段代码时,我都会将所选值内的值增加一。
这工作得很好,但我想知道是否有任何方法可以直接更新所选值而不会出现这些混乱。我在其他地方找不到办法做到这一点。
蝴蝶刀刀
莫回无
相关分类