если у меня есть две схемы вроде:
var userSchema = new Schema({
twittername: String,
twitterID: Number,
displayName: String,
profilePic: String,
});
var User = mongoose.model('User')
var postSchema = new Schema({
name: String,
postedBy: User, //User Model Type
dateCreated: Date,
comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});
Я пытался соединить их вместе, как в примере выше, но не мог понять, как это сделать. В конце концов, если я смогу сделать что-то подобное, моя жизнь станет очень легкой.
var profilePic = Post.postedBy.profilePic
javascript
mongodb
mongoose
Горкем Юрцевен
источник
источник
by:
selectropopulate
: mongoosejs.com/docs/populate.htmlПриложение: никто не упомянул "заполнить" --- это очень стоит вашего времени и денег, глядя на метод заполнения Mongooses: также объясняет перекрестные ссылки на документы
http://mongoosejs.com/docs/populate.html
источник
Поздний ответ, но добавлено, что у Mongoose также есть концепция вложенных документов.
С помощью этого синтаксиса вы должны иметь возможность ссылаться на свой
userSchema
как на тип в своемpostSchema
:Обратите внимание на обновленное
postedBy
поле с типомuserSchema
.Это встроит пользовательский объект в сообщение, сохранив дополнительный поиск, требуемый с помощью ссылки. Иногда это может быть предпочтительнее, в других случаях путь ref / populate может быть подходящим. Зависит от того, что делает ваше приложение.
источник