MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

como posso reescrever minha consulta mangusto depois de dividir os dados de um modelo em dois?


Primeiro, sugiro que você use uma consulta de preenchimento, se você achar que preencher não fornecerá os dados necessários, execute duas consultas e mescle esses resultados.

para populate, encontrei a solução no documento oficial do mongoose. você pode fazer assim.
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"
});

aqui está o link do documento:http://mongoosejs.com/docs/populate.html