【发布时间】:2021-12-02 02:22:17
【问题描述】:
我正在尝试在我的 api 中集成创建用户的可能性。我正在使用节点和 mongodb。这是我的架构:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const FileSchema = new Schema({
name: {
type: String,
required: true,
minlength:1,
unique:false,
}, extension: {
type:String,
required:true,
unique:false,
}, content: {
type:String,
required:true,
unique:false,
},group:{
type:String,
required:false,
unique:false,
}, creator:{
type: String,
required: true,
unique:false,
}
})
const File = mongoose.model('File', FileSchema);
module.exports = File;
这是我的功能:
const createNewFile = (req, res) => {
const name = req.body.name;
const extension = req.body.extension;
const creator = req.body.creator;
const group = req.body.group;
console.log(req.body)
const newFile = new File({name, extension, content:'Write your code here',creator, group:group});
newFile.save()
.then(() => res.json('200'))
.catch(err => res.status(400).json('ERROR:'+err))
}
Insomia 和 Postman 控制台返回标题中的错误。我能做些什么来避免这个错误?我添加了unique: false,因为我在另一个问题中阅读了它,但它还是失败了。有人可以帮帮我吗?当数据库为空时,我可以创建第一个元素。然后,当我创建第二个时,错误就来了。请帮帮我
【问题讨论】:
-
看起来您在文件集合上有一个索引。你能在这里分享你所有的索引吗?如果您对文件模型进行了更改,则可能必须删除整个集合以摆脱旧索引
-
你试过mongoosejs.com/docs/api.html#model_Model.syncIndexes方法删除未使用的索引吗?