2015-10-02 13 views
11

Ho quelli di codice try esecuzione per salvare un oggetto in MongoDB..save mangusta() non funziona

Il .save() non ha mai avuto esito positivo. il codice funziona bene.

.save() metodo non funziona.

var conn = mongoose.createConnection(mongoUrl, {auth: {authdb: "admin"}}); 
conn.on('error', function (err) { 
    throw err; 
}); 
conn.once('open', function callback() { 
    console.log("connected to " + mongoUrl); 
    var cacheSchema = mongoose.Schema({}, {strict: false}); 
    cacheSchema.set('collection', 'caches'); 
    // you need to specify which connection is uing. 
    var Cache = conn.model('cache', cacheSchema); 
    var measure = new Cache(); 
    measure['test'] = "test"; 
    measure.save(function(err){ 
     console.log('test'); 
    }); 
}); 
+1

'il .save() non ha mai avuto successo. Come puoi dire? non gli hai dato un richiamo. –

+0

Cosa c'è che non va? post l'errore –

+0

Ho modificato il callback. Ho inserito il punto di interruzione su console.log(). non si è mai fermato lì – sh977218

risposta

15

Ho appena incontrato un problema simile nel mio codice. Per il mio, avevo a che fare con un oggetto all'interno del mio documento utente. Ho dovuto eseguire unoprima del user.save() per garantire che le modifiche siano state salvate nel database. La mia teoria corrente è che Mongoose non stava rintracciando gli elementi non selezionati o rimossi dal database automaticamente

+0

Grazie !!! funziona perfettamente, ho perso così tanto tempo su questo – user3655266

3

Si prega di leggere this part della documentazione da mangusta e provare quanto segue:

var measure = new Cache({test:'teste'}); 
    // or measure.set('test', 'teste'); 
    measure.save(function (err) { 
        console.log(err); 
       }); 

Sarete in grado di vedere la questione se ci sono.

Aggiornare il problema sta usando:

var Cache = conn.model('cache', cacheSchema); 

invece di

var Cache = mongoose.model('cache', cacheSchema); 
+0

Ho fatto questo, e non sono in grado di raggiungere questa linea: console.log (err) – sh977218

+0

quale riga si interrompe il codice? o va fino in fondo? –

+1

Ho inserito il punto di interruzione su console.log (err); non arriva mai lì. il programma non ha lasciato nessuno dei due. Sembra che funzioni per sempre. – sh977218