最初のPOST後にエラーが発生し続けるモデルがあります。部屋と部屋の時間枠を含む、X日数のスケジューリングアプリケーションを作成しています。
私が抱えている問題は、データベースにDayオブジェクトを作成することです。読みやすくするために、単一のキーと値のペアを使用します
day.model.js
var mongoose = require('mongoose');
// Day Schema
var daySchema = mongoose.Schema({
name:{
type: String,
required: true,
},
createdAt:{
type: Date,
default: Date.now
}
});
var Day = module.exports = mongoose.model('Day', daySchema);
// Get all Days
module.exports.getDays = function(callback, limit){
Day.find(callback).limit();
};
// Add Day
module.exports.addDay = function(day, callback){
var add = {
name: day.name,
};
Day.create(add, callback);
};
day.routes.js
var express = require('express');
var router = express.Router();
var jwt = require('jsonwebtoken');
var config = require('../config/database');
Day = require('../models/day.model.js');
// Get all Days
router.get('/', function(req,res){
Day.getDays(function(err, days){
if(err){
res.send(err);
}
res.json(days);
});
});
// Add Day
router.post('/create', function(req,res){
var day = req.body;
Day.addDay(day, function(err, day){
if(err){
res.send(err);
}
res.json(day);
});
});
module.exports = router;
JSONの例
{"name": "Monday"}
-これはデータベースにうまく反映されます{"name": "Tuesday"}
-これは11000エラーをスローしますエラー
{
"code": 11000,
"index": 0,
"errmsg": "E11000 duplicate key error collection: <collection-name>.days index: date_1 dup key: { : null }",
"op": {
"name": "Tuesday",
"_id": "57fd89638039872dccb2230b",
"createdAt": "2016-10-12T00:52:51.702Z",
"__v": 0
}
}
私が混乱しているのは、serに対してこれと同じ設定をしていることですが、新しいDayを作成する場合、この重複キーエラーが発生します。何が欠けているのか、間違っているのかわからない。ありがとう
一意のインデックスdate_1
を持つdays
属性を持つdate
コレクションのモデルがあったと思います。
これで削除しましたが、コレクションにはまだそのインデックスがあります。
だからそれはそれが言う理由です:
重複キーエラーコレクション:.daysインデックス:date_1 dupキー:{:null}
これは、date
属性もnullである別のレコードを挿入していることを意味します。
コンソールからmongodbにログインし、これを実行してみてください。
db.collectionNameHere.getIndexes();
db.collectionNameHere.dropIndex('date_1');
db.collectionNameHere.getIndexes();
p.s.私/私たちがあなたの問題を解決するのを助けるために、あなたの質問またはコメントで追加のデータを自由に提供してください。