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

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

貓鼬自動(dòng)遞增

貓鼬自動(dòng)遞增

慕森卡 2019-10-30 10:21:37
根據(jù)此mongodb文章,可以自動(dòng)增加字段,我想使用counters收集方式。該示例的問題在于,我沒有成千上萬的人使用mongo控制臺(tái)在數(shù)據(jù)庫中鍵入數(shù)據(jù)。相反,我正在嘗試使用貓鼬。所以我的架構(gòu)看起來像這樣: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;      }    }});我已經(jīng)在同一數(shù)據(jù)庫中創(chuàng)建了counters集合,并添加了一個(gè)帶有'entityId'的_id的頁面。從這里,我不確定如何使用貓鼬更新該頁面并獲取遞增編號(hào)。沒有計(jì)數(shù)器的架構(gòu),我希望它保持這種狀態(tài),因?yàn)檫@實(shí)際上不是應(yīng)用程序使用的實(shí)體。僅應(yīng)在模式中使用它來自動(dòng)遞增字段。
查看完整描述

3 回答

?
HUX布斯

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

這是一個(gè)示例,如何在Mongoose中實(shí)現(xiàn)自動(dòng)遞增字段:


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();

    });

});


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
湖上湖

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

您可以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一次。


查看完整回答
反對(duì) 回復(fù) 2019-10-30
?
HUWWW

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

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


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;

    });

});

該選項(xiàng)的參數(shù)為您提供了更新的結(jié)果,如果它不存在,它會(huì)創(chuàng)建一個(gè)新文檔。您可以在此處查看官方文檔。


如果您需要排序索引,請(qǐng)查看此文檔


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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