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

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

通過貓鼬將項目推入mongo數(shù)組

通過貓鼬將項目推入mongo數(shù)組

茅侃侃 2019-06-29 10:08:07
通過貓鼬將項目推入mongo數(shù)組我已經(jīng)找了很好的答案,但我相信我迷失了正確的詞語來描述我的目標。基本上,我有一個名為“People”的MongoDB集合,該集合的模式如下所示:people: {          name: String,           friends: [{firstName: String, lastName: String}]         }現(xiàn)在,我有了一個非?;镜腅xpress應用程序,它連接到數(shù)據(jù)庫,并使用一個空的朋友數(shù)組成功地創(chuàng)建了“People”。在應用程序的次要位置,有一個表單可以添加朋友。表單接受FirstName和LastName,然后使用name字段發(fā)布,并引用適當?shù)腜eople對象。我很難做的是創(chuàng)建一個新的朋友對象,然后將它“推”到“朋友”數(shù)組中。我知道,當我通過mongo控制臺執(zhí)行此操作時,我使用了UPDATE函數(shù),并將$Push作為查找條件之后的第二個參數(shù),但我似乎找不到讓貓鼬這樣做的適當方法。db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}});最新情況:所以艾德里安的回答很有幫助。以下是我為實現(xiàn)我的目標所做的事情。在app.js文件中,我使用app.get('/addfriend', users.addFriend);在我的users.js文件中exports.addFriend = function (req, res, next){var friend = {"firstName": req.body.fName, "lastName": req.body.lName};Users.findOneAndUpdate({name: req.user.name}, {$push: {friends: friend}});};
查看完整描述

3 回答

?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

假設,var friend = { firstName: 'Harry', lastName: 'Potter' };

有兩種選擇:

更新內(nèi)存中的模型并保存(普通javascript array.ush):

person.friends.push(friend);person.save(done);

PersonModel.update(
    { _id: person._id }, 
    { $push: { friends: friend } },
    done);

我總是在可能的時候嘗試第一種選擇,因為它會尊重貓鼬給你帶來的更多好處(鉤子、驗證等等)。

然而,如果您正在進行大量并發(fā)寫操作,您將遇到競爭條件,最終會出現(xiàn)嚴重的版本錯誤,從而阻止您每次替換整個模型,并失去您添加的前一個朋友。所以只有在絕對必要的時候才去前者。


查看完整回答
反對 回復 2019-06-29
?
飲歌長嘯

TA貢獻1951條經(jīng)驗 獲得超3個贊

這個$Push運算符將指定的值追加到數(shù)組中。

{ $push: { <field1>: <value1>, ... } }

$Push添加以值作為其元素的數(shù)組字段。

上面的答案滿足了所有的要求,但我做了以下工作

var objFriends = { fname:"fname",lname:"lname",surname:"surname" };Friend.findOneAndUpdate(
   { _id: req.body.id }, 
   { $push: { friends: objFriends  } },
  function (error, success) {
        if (error) {
            console.log(error);
        } else {
            console.log(success);
        }
    });)


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 652 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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