這就是我在 mongodb 集合中存儲每個(gè)元素的方式。{ _id: 'iTIBHxAb8', title: 'happy birthday', votesObject: { happy: 0, birthday: 0 }}我做了一件非常骯臟的工作,對此我一點(diǎn)也不感到自豪,這就是......//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()將之前的對象替換為新更改的對象。每次執(zhí)行這段代碼時(shí),我都會將所選值內(nèi)的值增加一。這工作得很好,但我想知道是否有任何方法可以直接更新所選值而不會出現(xiàn)這些混亂。我在其他地方找不到辦法做到這一點(diǎn)。
更新 mongodb 對象內(nèi)對象值的最佳方法
慕容708150
2023-07-06 17:30:24