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

MongoDB:「_id」の代わりに「id」を出力します

    Mongooseを使用している場合は、「仮想」を使用できます。これは、基本的にMongooseが作成する偽のフィールドです。それらはDBに保存されず、実行時に入力されるだけです:

    // Duplicate the ID field.
    Schema.virtual('id').get(function(){
        return this._id.toHexString();
    });
    
    // Ensure virtual fields are serialised.
    Schema.set('toJSON', {
        virtuals: true
    });
    

    このスキーマから作成したモデルでtoJSONが呼び出されると、Mongoが生成する_idフィールドと一致する「id」フィールドが含まれます。同様に、toObjectの動作も同じように設定できます。

    参照:

    • http://mongoosejs.com/docs/api.html
    • http://mongoosejs.com/docs/guide.html#toJSON
    • http://mongoosejs.com/docs/guide.html#toObject

    これをすべてのモデルのBaseSchemaに抽象化してから、拡張/呼び出してロジックを1か所に保持できます。 Emberは「id」フィールドを使用することを本当に好むため、Ember / Node/Mongooseアプリの作成中に上記を作成しました。



    1. MongoDB$count集約演算子

    2. RedisをJHipsterCacheConfigurationエラーに統合する

    3. その場で生成される非常に大きなファイルをクライアントにダウンロードさせる方法

    4. すべてのRedisデータベースを一覧表示する方法は?