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

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

貓鼬自動遞增

貓鼬自動遞增

有只小跳蛙 2019-12-15 16:12:05
根據此mongodb文章,可以自動增加字段,我想使用counters收集方式。該示例的問題在于,我沒有成千上萬的人使用mongo控制臺在數據庫中鍵入數據。相反,我正在嘗試使用貓鼬。所以我的架構看起來像這樣:var entitySchema = mongoose.Schema({  testvalue:{type:String,default:function getNextSequence() {        console.log('what is this:',mongoose);//this is mongoose        var ret = db.counters.findAndModify({                 query: { _id:'entityId' },                 update: { $inc: { seq: 1 } },                 new: true               }        );        return ret.seq;      }    }});我已經在同一數據庫中創(chuàng)建了counters集合,并添加了一個帶有'entityId'的_id的頁面。從這里,我不確定如何使用貓鼬更新該頁面并獲取遞增編號。沒有計數器的架構,我希望它保持這種狀態(tài),因為這實際上不是應用程序使用的實體。僅應在模式中使用它來自動遞增字段。
查看完整描述

3 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

這是一個示例,如何在Mongoose中實現(xiàn)自動遞增字段:


var CounterSchema = Schema({

    _id: {type: String, required: true},

    seq: { type: Number, default: 0 }

});

var counter = mongoose.model('counter', CounterSchema);


var entitySchema = mongoose.Schema({

    testvalue: {type: String}

});


entitySchema.pre('save', function(next) {

    var doc = this;

    counter.findByIdAndUpdate({_id: 'entityId'}, {$inc: { seq: 1} }, function(error, counter)   {

        if(error)

            return next(error);

        doc.testvalue = counter.seq;

        next();

    });

});



查看完整回答
反對 回復 2019-12-16
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

您可以mongoose-auto-increment按以下方式使用包:


var mongoose      = require('mongoose');

var autoIncrement = require('mongoose-auto-increment');


/* connect to your database here */


/* define your CounterSchema here */


autoIncrement.initialize(mongoose.connection);

CounterSchema.plugin(autoIncrement.plugin, 'Counter');

var Counter = mongoose.model('Counter', CounterSchema);

您只需要初始化autoIncrement一次。



查看完整回答
反對 回復 2019-12-16
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

投票最多的答案不起作用。解決方法是:


var CounterSchema = new mongoose.Schema({

? ? _id: {type: String, required: true},

? ? seq: { type: Number, default: 0 }

});

var counter = mongoose.model('counter', CounterSchema);


var entitySchema = mongoose.Schema({

? ? sort: {type: String}

});


entitySchema.pre('save', function(next) {

? ? var doc = this;

? ? counter.findByIdAndUpdateAsync({_id: 'entityId'}, {$inc: { seq: 1} }, {new: true, upsert: true}).then(function(count) {

? ? ? ? console.log("...count: "+JSON.stringify(count));

? ? ? ? doc.sort = count.seq;

? ? ? ? next();

? ? })

? ? .catch(function(error) {

? ? ? ? console.error("counter error-> : "+error);

? ? ? ? throw error;

? ? });

});

該選項的參數為您提供了更新的結果,如果它不存在,它會創(chuàng)建一個新文檔。



查看完整回答
反對 回復 2019-12-16
  • 3 回答
  • 0 關注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號