我正在嘗試在我的 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))
}
Insoia 和 Postman 控制臺回傳標題中的錯誤。我該怎么做才能避免這個錯誤?我添加unique: false是因為我在另一個問題中閱讀了它,但它還是失敗了。有人可以幫幫我嗎?當資料庫為空時,我可以創建第一個元素。然后,當我創建第二個時,錯誤就來了。請幫我
uj5u.com熱心網友回復:
在MongoDB的節點上有一個唯一索引{key: 1}中files的收集myFirstDatabase資料庫。
我懷疑這是在您測驗潛在的架構設計時創建的。
為了插入不包含該欄位唯一值的檔案,包括不包含該欄位,需要洗掉該索引。
實作這一點的幾種方法:
- 使用 mongo shell 或像 Compass 或 Robo3t 這樣的管理工具連接到 mongod 并手動洗掉索引
- 使用
syncIndexes由貓鼬提供 - 放下
files收藏 - 洗掉
myFirstDatabase資料庫 - 停止 mongod,洗掉整個 dbpath,然后從一個干凈的實體開始
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/371134.html
