1
首先,哪一個最好? findAndModify
或findOneAndUpdate
或findByIdAndUpdate
?findAndModify或findOneAndUpdate - 「不是函數」
在我來說,我有這樣的一個表:
seqkeys
{
"_id" : "invoice",
"seq" : NumberInt(1)
},
{
"_id" : "receipt",
"seq" : NumberInt(1)
}
而且我想找到序列號發票,加1並保存。 (然後用這個數字來保存真正的發票記錄發票表)
,但我不能得到這個工作,我不斷地得到
TypeError: seqkeysTable.findAndModify is not a function
因此,這裏是我的模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var seqkeysSchema = new Schema({
_id: String, // Table Name
seq: Number // Sequence Number
});
module.exports = mongoose.model('seqkeysModel', seqkeysSchema,'seqkeys');
這裏是我的findkey
功能的NodeJS ....
var seqkeysModel = require('../../models/seqkeysModel');
var seqkeysTable = mongoose.model('seqkeysModel');
var findKey = function(tableName) {
return new Promise((resolve, reject) => {
seqkeysTable.findAndModify(
{ "_id": tableName },
{ $inc: {"seq":1} },
{ new: true }
,function (err, data) {
if (err) {
reject(new Error('findKey ERROR : ' + err));
return;
} else {
resolve(data.seq);
};
});
})};
感謝塔爾哈 - 我會嘗試findByIdAndUpdate,看看它是否會工作。 – torbenrudgaard
https://docs.mongodb.com/manual/search/?query=findByIdAndUpdate hahaha我猜他們忘了把它放在他們的手冊中:-D – torbenrudgaard
不,他們沒有:) findByIdAndUpdate不是mongoDB的一部分。它是貓鼬的。 –