sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose:jak nastavit pole schématu jako ID?

Protože používáte Mongoose, jednou z možností je použít řetězec e-mailu jako _id pole a poté přidejte virtuální pole s názvem email který vrací _id k vyčištění kódu, který používá 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);
});

Všimněte si, že při převodu dokumentu Mongoose na prostý objekt JS nebo řetězec JSON není ve výchozím nastavení zahrnuto virtuální pole. Chcete-li jej zahrnout, musíte nastavit virtuals: true možnost v toObject() nebo toJSON() zavolejte:

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



  1. Převod izodatu na číselnou hodnotu

  2. MongoDB $ minuta

  3. MongoDB a CodeIgniter

  4. Zhroucení Mongodb dostal signál 15 (ukončeno)