我正在为一个应用程序开发一个nodejs后端,用户可以在其中查看他/她关注的用户创建的帖子。
我想用猫鼬来做。
我的userSchema:
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
hashed_password: {
type: String,
required: true
},
isVerified: {
type:Boolean,
default: false
},
emailVerificationToken: String,
emailVerificationTokenExpires: Date,
followers: [{ type: ObjectId, ref: 'User'}],
following: [{ type: ObjectId, ref: 'User'}],
posts: [{type: ObjectId, ref: 'Post'}],
bio: String,
website: String
});
我的postSchema:
const postSchema = new mongoose.Schema({
title: {
type: String,
required: true
},
url: {
type: String,
required: true
},
description: {
type: String,
},
website: String,
tags : [String],
createdBy: { type: ObjectId, ref: 'User'}
});
我已经尝试过:
User.findById(currentUserId)
.populate("following","posts")
.populate("following.posts","_id title")
.skip()
.limit()
.exec(function(err,users){
res.send(users);
});
这将使分页的用户返回关注者,并填充其帖子。我只想要所有用户的帖子。有人可以帮我吗?
答案 0 :(得分:0)
我认为您在userSchema中将拼写错误的帖子用作图钉。
您也正在吸引用户,相反,您应该获取所有包含该帖子的用户数据的帖子。
Post.find({})
.populate("createdBy")
.exec(function(err,users){
res.send(users);
});