Короче говоря, проблема заключается в том, что я использую Mon goose с приведенным ниже кодом для создания и сохранения записей db в родительской схеме Blogpost
и в дочерней схеме Relatedcomment
, но когда я запрашиваю его, _id родительского объекта показывает в дочернем объекте, но in the parent object no child shows up at all
. Другими словами the child knows who the parent is, but the parent doesnt know who is its child
. Пожалуйста, помогите мне добраться до дочернего объекта while querying parent object
. Код ниже
Ниже приведена схема родительского объекта ie Blogpost blogpost.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const BlogpostSchema = new mongoose.Schema({
_id: Schema.Types.ObjectId,
image:String,
title:String,
related_comments: [{ type: Schema.Types.ObjectId, ref: 'Relatedcomment' }],
});
mongoose.model('Blogpost', BlogpostSchema);
Ниже приведена схема дочернего объекта ie Связанный комментарий relatedcomment.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const RelatedcommentSchema = new mongoose.Schema({
blogpost: { type: Schema.Types.ObjectId, ref: 'Blogpost' },
user_name: String,
comment: String,
});
mongoose.model('Relatedcomment', RelatedcommentSchema);
Ниже показано, как я сохраняю родительский объект с дочерним объектом. Заметьте, я передаю _id в блог, а его дочерний элемент тоже как blogpost._id
require('../models/blogpost');
require('../models/relatedcomment');
const Blogpost = mongoose.model('Blogpost');
const Relatedcomment = mongoose.model('Relatedcomment');
// db_object_dict and child_db_object_dict are objects containing key value pairs according to their schemas
const blogpost = new Blogpost( {...db_object_dict, _id: new mongoose.Types.ObjectId()} )
blogpost.save(function (err) {
if (err) return handleError(err);
const related_child = new Relatedcomment( {...child_db_object_dict, blogpost: blogpost._id} )
related_child.save(function (err) {
if (err) return handleError(err);
});
}
}