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

IDではないフィールドをマングースモデルに入力します

    これは、 Mongoose 4.5以降でサポートされています 、仮想人口と呼ばれます 。

    外部キーの関係を定義する必要があります スキーマ定義の後 モデルを作成する前 、このように:

    // Schema definitions
    
    BookSchema = new mongoose.Schema({
            ...,
            title: String,
            authorId: Number,
            ...
        },
        // schema options: Don't forget this option
        // if you declare foreign keys for this schema afterwards.
        {
            toObject: {virtuals:true},
            // use if your results might be retrieved as JSON
            // see http://stackoverflow.com/q/13133911/488666
            //toJSON: {virtuals:true} 
        });
    
    PersonSchema = new mongoose.Schema({id: Number, ...});
    
    
    // Foreign keys definitions
    
    BookSchema.virtual('author', {
      ref: 'Person',
      localField: 'authorId',
      foreignField: 'id',
      justOne: true // for many-to-1 relationships
    });
    
    
    // Models creation
    
    var Book = mongoose.model('Book', BookSchema);
    var Person = mongoose.model('Person', PersonSchema);
    
    
    // Querying
    
    Book.find({...})
        // if you use select() be sure to include the foreign key field !
        .select({.... authorId ....}) 
        // use the 'virtual population' name
        .populate('author')
        .exec(function(err, books) {...})
    


    1. CentosでRedisの複数のインスタンスを実行する

    2. MongoDB:ネストされた配列フィルタリングを使用したfindおよびfindOne

    3. Springdatamongodb-「カーソル」オプションが必要です

    4. データベースヘルスチェックの自動化