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

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

如何在Mongoose中更新/更新文檔?

如何在Mongoose中更新/更新文檔?

也許是時(shí)候了,也許是我淹沒在稀疏的文檔中,無法將自己的頭圍在Mongoose中的更新概念上:)這是交易:我有一個(gè)聯(lián)系模式和模型(縮短的屬性):var mongoose = require('mongoose'),    Schema = mongoose.Schema;var mongooseTypes = require("mongoose-types"),    useTimestamps = mongooseTypes.useTimestamps;var ContactSchema = new Schema({    phone: {        type: String,        index: {            unique: true,            dropDups: true        }    },    status: {        type: String,        lowercase: true,        trim: true,        default: 'on'    }});ContactSchema.plugin(useTimestamps);var Contact = mongoose.model('Contact', ContactSchema);我從客戶端收到一個(gè)包含我需要的字段的請(qǐng)求,并因此使用我的模型:mongoose.connect(connectionString);var contact = new Contact({    phone: request.phone,    status: request.status});現(xiàn)在我們解決了這個(gè)問題:如果我打電話,contact.save(function(err){...})如果使用相同電話號(hào)碼的聯(lián)系人已經(jīng)存在(如預(yù)期-唯一),我將收到一條錯(cuò)誤消息我無法致電update()聯(lián)系,因?yàn)樵摲椒ㄔ谖臋n中不存在如果我對(duì)模型進(jìn)行更新:Contact.update({phone:request.phone}, contact, {upsert: true}, function(err{...})我會(huì)陷入某種無限循環(huán),因?yàn)镸ongoose更新實(shí)現(xiàn)顯然不希望將對(duì)象作為第二個(gè)參數(shù)。如果執(zhí)行相同的操作,但是在第二個(gè)參數(shù)中,我傳遞了一個(gè)有效的請(qǐng)求屬性的關(guān)聯(lián)數(shù)組{status: request.status, phone: request.phone ...}-但隨后我沒有對(duì)特定聯(lián)系人的引用,并且無法找到其createdAt和updatedAt屬性。因此,最重要的是,在我嘗試以下所有操作之后:給定一個(gè)文檔contact,如果存在,如何更新它;如果不存在,如何添加它?謝謝你的時(shí)間。
查看完整描述

3 回答

?
紅顏莎娜

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

Mongoose現(xiàn)在通過findOneAndUpdate原生支持此功能(調(diào)用MongoDB findAndModify)。


如果不存在upsert = true選項(xiàng),則會(huì)創(chuàng)建該對(duì)象。默認(rèn)為false。


var query = {'username':req.user.username};

req.newData.username = req.user.username;

MyModel.findOneAndUpdate(query, req.newData, {upsert:true}, function(err, doc){

    if (err) return res.send(500, { error: err });

    return res.send("succesfully saved");

});

在較舊的版本中,Mongoose不支持使用以下方法的這些鉤子:


默認(rèn)

二傳手

驗(yàn)證者

中間件


查看完整回答
反對(duì) 回復(fù) 2019-10-04
  • 3 回答
  • 0 關(guān)注
  • 1875 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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