findAndModify 或 findOneAndUpdate - “不是函数”

2023-12-10

首先,哪个最好?findAndModify or findOneAndUpdate or findByIdAndUpdate?

就我而言,我有一张这样的表:

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

这是我的findkeyNode.js 函数....

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

猫鼬有findOneAndUpdate(相当于 mongoDB查找并修改。 MongoDB还推出了查找并更新版本 >= 3.2) 和findByIdAndUpdate。这就是为什么findAndModify不适用于猫鼬。

至于哪个更好,在查找并更新您可以传递包含多个字段的查询对象按Id查找并更新仅将 id 作为第一个参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

findAndModify 或 findOneAndUpdate - “不是函数” 的相关文章

随机推荐