sql >> Databasteknik >  >> NoSQL >> MongoDB

hur kan jag skriva om min mongoose-fråga efter att ha delat upp data från en modell i två?

Först föreslår jag att du går med en fyllningsfråga, om du känner att den fyller inte ger dig en data som du behöver kan du köra två frågor och slå samman dessa resultat.

för populate, jag hittade lösningen från den officiella doc of mongoose. du kan göra så här.

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

här är dokumentlänken:http://mongoosejs.com/docs/populate.html




  1. Introduktion till Redis Data Structures:Sorterade uppsättningar

  2. MongoDB-tjänsten startar inte efter den första installationen

  3. Spring Data MongoDB aggregering - matcha efter beräknat värde

  4. MongoDB $lookup Värde Tillbaka till Array