2017-09-16 5 views
0

Versuchen, eine einfache CRUD für einen Benutzer zu tun. Ich gebe Name, E-Mail, Passwort, Standort, Avatar über ein Anmeldeformular von React/Redux weiter.MongoDB speichert Benutzer nicht

ich eine Störung erhalte während des Speicherns die sagt folgendes über einen doppelten Schlüsselfehler -

(node:30190) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): WriteError({"code":11000,"index":0,"errmsg":"E11000 duplicate key error index: heroku_10vr0vgl.users.$googleId_1 dup key: { : null }","op":{"avatar":"avatar.jpg","slug":"jane","id":"cj7nl39w50000amcaool50zcp","name":"Jane","email":"[email protected]","password":"$2a$10$envMKYq6xFCkZGpYVd4rEel4g5TGijFOEnr.ayMymHM1ph0/1luGC","location":"Los Angeles","_id":"59bd5e9478537875ee6b8939","createdAt":"2017-09-16T17:25:40.863Z","campaigns":[],"role":"NORMAL","__v":0}}) 

Sieht etwas über ein Duplikat val zu sein, aber googleID für Ex ist nicht erforderlich.

Ich habe nur ein Mock-Benutzer in der Benutzer Sammlung, die wie folgt aussieht -

[ 
    { 
    "_id": { 
     "$oid": "59a070dea4de3af502af7d5c" 
    }, 
    "avatar": "avatar.jpg", 
    "name": "John Doe", 
    "role": "ADMIN", 
    "slug": "john-doe", 
    "id": "1", 
    "email": "[email protected]", 
    "location": "Los Angeles", 
    "campaigns": ["1"], 
    "twitterId": "refinery29", 
    "password": "test1234" 
    } 
] 

Das Benutzermodell wie folgt aussieht -

import mongoose from 'mongoose'; 

const Schema = mongoose.Schema; 

const userSchema = new Schema({ 
    name: {type: 'String', required: true}, 
    role: {type: 'String', default: 'NORMAL', required: true}, 
    location: {type: 'String'}, 
    slug: {type: 'String', required: true, index: {unique: true, dropDups: true}}, 
    campaigns: {type: ['String'], default: []}, 
    avatar: {type: 'String', required: true}, 
    email: {type: 'String', index: {unique: true, dropDups: true}}, 
    id: {type: 'String', required: true, index: {unique: true, dropDups: true}}, 
    googleId: {type: 'String'}, 
    facebookId: {type: 'String'}, 
    twitterId: {type: 'String'}, 
    createdAt: {type: 'Date', default: Date.now, required: true}, 
    password: {type: 'String'}, 
}); 

export default mongoose.model('User', userSchema); 

Antwort

0

Sieht aus wie ich eine bestehende hatte Indexreferenz. Ich habe meine Benutzersammlung gelöscht und gespeichert. Alles ist gut!

Verwandte Themen