MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann ich meine Mungo-Abfrage neu schreiben, nachdem ich Daten von einem Modell in zwei aufgeteilt habe?

Zuerst schlage ich vor, dass Sie mit einer Abfrage zum Auffüllen gehen, wenn Sie der Meinung sind, dass Auffüllen Ihnen keine Daten liefert, die Sie benötigen, können Sie zwei Abfragen ausführen und diese Ergebnisse zusammenführen.

für populate fand ich die lösung aus dem offiziellen doc von mongoose. du kannst das so machen.

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

Hier ist der Doc-Link:http://mongoosejs.com/docs/populate.html