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

1対多の関係を持つマングースドキュメント参照

    人口を参照してください。ここではマングースから例を抽出します。

    var mongoose = require('mongoose')
    , Schema = mongoose.Schema
    
    var personSchema = Schema({
      _id     : Schema.Types.ObjectId,
      name    : String,
      age     : Number,
      stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
    });
    
    var storySchema = Schema({
      _creator : { type: Schema.Types.ObjectId, ref: 'Person' },
      title    : String,
      fans     : [{ type: Schema.Types.ObjectId, ref: 'Person' }]
    });
    
    var Story  = mongoose.model('Story', storySchema);
    var Person = mongoose.model('Person', personSchema);
    

    したがって、Storyに関する例 モデルは関連するPerson._idを保存します Story._creatorで 。 Storyのドキュメントを見つけたとき 、populate()を使用できます Personのどの属性を定義するか 同時に取得するモデル:

    Story.findOne({_id: 'xxxxxxx'}).populate('person', 'name age').exec(function(err, story) {
      console.log('Story title: ', story.title);
      console.log('Story creator', story.person.name);
    });
    

    これがあなたが探しているものだと思います。または、代わりにネストされたコレクションを使用できます。



    1. mongoDBでObjectIDを持つドキュメントを検索します

    2. Redis:ハッシュをキーで並べ替えるにはどうすればよいですか?

    3. Redisのすべてを削除するにはどうすればよいですか?

    4. Mongodb:$in演算子と多くの単一クエリ