2015-06-22 14 views
9

Nella mia applicazione sto usando MongoDB come database e Express + Mongoose per la gestione dei codici. Ho aggiunto un utente al database e dato il ruolo readWrite per l'utente, ora posso recuperare i dati dal database. Ma quando sto cercando di inserire una collezione usando la funzione save in Express + Mongoose ho ricevuto il seguente messaggio di errore e non sono riuscito a trovare come aggiungere il privilegio findandmodify all'utente.MongoDB - Come aggiungere il privilegio findandmodify a un utente

{"name":"MongoError", 
    "ok":0, 
    "errmsg":"not authorized on od-database to execute command { findandmodify: \"identitycounters\", 
    query: { 
     field: \"id\", 
     model: \"Products\" }, 
    new: 1 , 
    remove: 0, 
    upsert: 0, 
    update: { $inc: { count: 1 } } }","code":13} 

Per favore aiutatemi.

+0

Si prega di condividere i pezzi di codice che mostrano il nome del database, come si sta chiamando 'mongoose.createConnection' e come si stanno dando il permesso all'utente. Grazie! –

+0

Mostraci i tuoi codici sul backend, quindi ti aiuteremo a recuperare questo problema. –

risposta

0

Provare a dargli il ruolo dbAdmin.

0

Oppure provare a disabilitare l'autorizzazione o aggiungere l'utente che si collega al database.
Un esempio di aggiunta di un utente al database:

db.createUser({ 
    user: "admin", 
    pwd: "test", 
    roles: [ { role: "dbAdmin", db: "shop" } ] 
}) 

Dove:

  • db:"shop" - è il nome del database
  • pwd: "test" - password del database
  • user: "admin" - l'utente attraverso il quale la connessione nel database, esempio db.auth('admin', 'test')
1

ho testare un utente con readWrite ruolo per collegare mongoDB fare l'operazione save e findAndModify su non di sistema documento, ciascuno di essi potrebbe essere fatto con successo.

Si prega di assicurarsi

  • la correttezza username e password per collegare il db in mongoose.createConnction o mongoose.connect.
  • Questo utente esiste nel ruolo db.system.users con readWrite.
  • L'utente readWrite solo è possibile modificare i dati su tutti i non di sistema collezioni della collezione system.js
Problemi correlati