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

1つのモデルのデータを2つに分割した後、マングースクエリを書き直すにはどうすればよいですか?

    まず、populateクエリを使用することをお勧めします。populateによって必要なデータが得られない場合は、2つのクエリを実行してそれらの結果をマージできます。

    ポピュレートについては、マングースの公式ドキュメントから解決策を見つけました。あなたはこのようにすることができます。

    var mongoose = require('mongoose')
      , Schema = mongoose.Schema
    
    var personSchema = Schema({
      _id     : Number,
      name    : String,
      age     : Number,
      stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }]
    });
    
    var storySchema = Schema({
      _creator : { type: Number, ref: 'Person' },
      title    : String,
      fans     : [{ type: Number, ref: 'Person' }]
    });
    
    var Story  = mongoose.model('Story', storySchema);
    var Person = mongoose.model('Person', personSchema);
    
    Story
    .findOne({ title: 'Once upon a timex.' })
    .populate('_creator')
    .exec(function (err, story) {
      if (err) return handleError(err);
      console.log('The creator is %s', story._creator.name);
      // prints "The creator is Aaron"
    });
    

    ここにドキュメントリンクがあります: http://mongoosejs.com/docs/populate.html




    1. Spring DataMongoDBBigDecimalのサポート

    2. Meteor、MongoDBはサブスクリプションを通じてアレイの一部を取得します

    3. SpringMongoで$stdDevSampまたは$stdDevPopを使用する

    4. 配列.NETドライバーのアイテムの属性にMongoDBMultiKeyインデックスを作成する方法