未找到自动增量插件 nextCount
Posted
技术标签:
【中文标题】未找到自动增量插件 nextCount【英文标题】:Auto increment plugin nextCount not found 【发布时间】:2018-06-18 03:13:48 【问题描述】:我正在使用 mongoose-auto-increment 插件,我正在使用 TypeScript Node.js,并且我已经安装了所需的类型定义,但是当我尝试获取自动增量的下一个计数时,我得到了这个
Property 'nextCount' does not exist on type 'Model<Document>'
我的模式是示例中的模式:
let bookSchema = new Schema(
author: type: Number, ref: 'Author' ,
title: String,
genre: String,
publishDate: Date
);
bookSchema.plugin(autoIncrement.plugin, 'Book');
var Book = connection.model('Book', bookSchema);
//// error here
Book.nextCount(function(err, count)
);
我的 tsconfig.json 是这样的
"compilerOptions":
"types" : ["node", "socket.io"],
"module": "commonjs",
"experimentalDecorators": true,
"target": "es2015",
"lib": ["es2015", "es2017", "dom"]
,
"include": [
"**/*.ts"
],
"exclude": [
"node_modules"
]
【问题讨论】:
你在使用 mongoose-auto-increment 插件吗? 是的,我也安装了这个。 npmjs.com/package/@types/mongoose-auto-increment 插件最后一次更新是在 4 年前。你能解释一下为什么需要这个插件吗?我们可以通过更多的自定义手动做同样的事情 好吧,我想要一个自动增量 ID,我在这里存储聊天消息,一旦有大约 50 条消息,我就会推送到数据库。如果用户想要编辑或删除我需要一个参考 id 并且我知道默认情况下 mongo 中有 _id 但由于我没有推送每条消息,我需要一个自动增量部分。 更不用说我使用猫鼬了,所以。 【参考方案1】:在保存批次之前,只需使用ObjectId
并为每条聊天消息设置_id
:
const mongoose = require('mongoose');
const ObjectId = mongoose.Types.ObjectId;
messages.forEach(message =>
message._id = message._id || ObjectId()
)
// call you method which save batches
saveBatch(messages)
【讨论】:
以上是关于未找到自动增量插件 nextCount的主要内容,如果未能解决你的问题,请参考以下文章