sql >> データベース >  >> NoSQL >> MongoDB

マングース:スキーマフィールドをIDに設定する方法は?

    Mongooseを使用しているため、1つのオプションは、電子メール文字列を_idとして使用することです。 フィールドを追加してから、仮想フィールド を追加します。 名前付きemail _idを返します 電子メールを使用するコードをクリーンアップします。

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

    MongooseドキュメントをプレーンなJSオブジェクトまたはJSON文字列に変換する場合、デフォルトでは仮想フィールドは含まれないことに注意してください。これを含めるには、virtuals: trueを設定する必要があります toObject()のオプション または toJSON() 電話:

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



    1. PyMongoを使用して、あるデータベースから同じサーバー上の別のデータベースにコレクションをコピーするにはどうすればよいですか?

    2. 列挙型MongoDBを保存する

    3. NodeJでMongodbのグローバル接続を処理するための最良の方法は何ですか

    4. Mongodbのmongodumpコマンド、javascript実行エラー