第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

更新 mongodb 對象內(nèi)對象值的最佳方法

更新 mongodb 對象內(nèi)對象值的最佳方法

慕容708150 2023-07-06 17:30:24
這就是我在 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)。
查看完整描述

2 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

你可以使用 mongoose?findOneAndUpdate?它將類似于

const updateKey = "votesObject.$."+ chosenValue

let incQuery = {}

incQuery[updateKey] = 1


Model.findOneAndUpdate(

? ? { _id: id },?

? ? { $inc: incQuery },

? ? { new : false },?

? ? callback

)


查看完整回答
反對 回復(fù) 2023-07-06
?
莫回?zé)o

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用$inc運(yùn)算符。

嘗試這樣的事情:

db.collection.update({

? "_id": id

},

{

? "$inc": {

? ? "votesObject.birthday": 1

? }

})

此查詢會將您的字段加birthday一。





查看完整回答
反對 回復(fù) 2023-07-06
  • 2 回答
  • 0 關(guān)注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號