sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose:hvordan indstiller man et skemafelt til at være ID?

Da du bruger Mongoose, er en mulighed at bruge e-mail-strengen som _id felt og derefter tilføje et virtuelt felt navngivet email der returnerer _id for at rydde op i koden, der bruger e-mailen.

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);
});

Bemærk, at et virtuelt felt ikke er inkluderet som standard, når et Mongoose-dokument konverteres til et almindeligt JS-objekt eller JSON-streng. For at inkludere det skal du indstille virtuals: true mulighed i toObject() eller toJSON() ring:

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



  1. MongoError:tilslut UNKENDT

  2. StackExchange.Redis ConnectionMultiplexer-pulje til synkrone metoder

  3. MongoDB:forbinder med ASP.NET MVC-applikation

  4. Sådan rettes Redis-nøgler serialiseret med Java