MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose:jak ustawić pole schematu jako identyfikator?

Ponieważ używasz Mongoose, jedną z opcji jest użycie ciągu e-mail jako _id a następnie dodaj pole wirtualne o nazwie email który zwraca _id aby wyczyścić kod, który używa wiadomości e-mail.

var userSchema = new Schema({
    _id: {type: String},
    passwordHash: {type: String},
    roles: {type: [String]}
});

userSchema.virtual('email').get(function() {
    return this._id;
});

var User = mongoose.model('User', userSchema);

User.findOne(function(err, doc) {
    console.log(doc.email);
});

Pamiętaj, że pole wirtualne nie jest domyślnie dołączane podczas konwertowania dokumentu Mongoose na zwykły obiekt JS lub ciąg JSON. Aby to uwzględnić, musisz ustawić virtuals: true opcja w toObject() lub toJSON() zadzwoń:

var obj = doc.toObject({ virtuals: true });
var json = doc.toJSON({ virtuals: true });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Kiedy zamknąć połączenie z bazą danych MongoDB w Nodejs

  2. Mongorestore, od serwera produkcyjnego meteor do lokalnego

  3. Najlepszy sposób na połączenie z MongoDB za pomocą Node.js

  4. zapytanie mongodb bez nazwy pola

  5. Mongoose i nowy schemat:zwraca ReferenceError:Schemat nie jest zdefiniowany