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