Я пытаюсь установить связь между двумя коллекциями мангустов.Таким образом, информация о пользователе сохраняется в коллекции с именем user, а его содержимое хранится в другой коллекции.Пока что я скопировал некоторый код из здесь и отредактировал его;
, а затем с помощью Postman я создал имя пользователя с именем "example";затем я создал пост со случайным контентом, и как автор я установил его «пример», но кажется, что он не работает, когда я получаю «/ test», он регистрирует:
ЗаполненоПользователь {posts: [], _id: 5c530cd4ede117109cf1a5e9,
username: 'example', __v: 0}
posts пуст, как вы видите, что я должен изменить, чтобы это исправить?
const UserSchema = new mongoose.Schema({
username: String,
posts: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}]
})
const PostSchema = new mongoose.Schema({
content: String,
author: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
})
function getUserWithPosts(username){
return User.findOne({ username: username })
.populate('posts').exec((err, posts) => {
console.log("Populated User " + posts);
})
}
const Post = mongoose.model('Post', PostSchema, 'posts');
const User = mongoose.model('User', UserSchema, 'users');
app.post('/testUser', (req, res) => {
var username = req.body.username;
var clientModel = new User({
username: username,
});
clientModel.save(function (error) {
if (error) {
console.log(error);
}
res.send({
success: true,
username: username,
message: 'account saved successfully!'
});
});
});
app.post('/testPost', (req, res) => {
var content = req.body.content;
var author = req.body.author;
var clientModel = new Post({
content: content,
author: author
});
clientModel.save(function (error) {
if (error) {
console.log(error);
}
res.send({
success: true,
content: content,
author: author,
message: 'account saved successfully!'
});
});
});
app.get('/test', (req, res) => {
res.send({
posts: getUserWithPosts("example")
})
});