У меня есть две коллекции в MongoDB: одна сохраняет данные в блоге, другая сохраняет данные комментариев в блоге с помощью нижеприведенных схем. Как я могу использовать nodejs и mongoose для запроса всех сообщений с комментариями к нему и отвечать на одностраничное приложение ?. Благодаря!запрос по многим отношениям mongodb database struct
var PostSchema = mongoose.Schema({
created: {
type: Date,
default: Date.now
},
content: {
type: String,
default: '',
trim: true
},
user: {
type: Schema.ObjectId,
ref: 'user'
}
});
var CommentSchema = mongoose.Schema({
created: {
type: Date,
default: Date.now
},
content: {
type: String,
default: '',
trim: true
},
ofpost: {
type: Schema.ObjectId,
ref: 'post' //which post this comment belong to
},
user: {
type: Schema.ObjectId,
ref: 'user'
}
});
var Post = mongoose.model('Post', PostSchema);
var Comment = mongoose.model('Comment', CommentSchema);
//example:the Comment1 and Comment2 belong to Post1
var Post1 = new Post({ content: 'good day', user: 'John' });
var Comment1 = new Comment({content: 'yeah', ofpost: Post1._id, user:'Tom'})
var Comment2 = new Comment({content: 'agree', ofpost: Post1._id, user:'Tina'})
Не могли бы вы немного пояснить 'ref: 'post'' в' CommentSchema'. –
Hi @Amol M Kulkarni, я создаю две модели на вышеприведенных схемах: var Post = mongoose.model ('Post', PostSchema); var Комментарий = mongoose.model ('Comment', CommentSchema); И это две коллекции: var Post1 = new Post ({content: 'good day', user: 'John'}); var Комментарий1 = новый Комментарий ({content: 'yeah', ofpost: Post1._id, пользователь: 'Tom'}) var Comment2 = new Комментарий ({content: 'agree', ofpost: Post1._id, user: ' Tina '}) Итак, Comment1 и Comment2 принадлежат Post1 –
Согласно вашим комментариям 'var Post1 = new Post ({content:' good day ', user:' John '});' не имеет ** '_id' * * поле; Но вы используете его как ссылку, 'var Comment1 = new Comment ({content: 'yeah', ofpost:' ** 'Post1._id' **', user: 'Tom'}); '. Исправьте его в своей схеме и обновите в своем вопросе. –