sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo puedo reescribir mi consulta de mangosta después de dividir los datos de un modelo en dos?

Primero, le sugiero que vaya con una consulta de relleno, si cree que rellenar no le dará los datos que necesita, puede ejecutar dos consultas y fusionar esos resultados.

para poblar, encontré la solución en el documento oficial de mongoose. puedes hacer así.

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"
});

aquí está el enlace del documento:http://mongoosejs.com/docs/populate.html