【发布时间】:2021-05-30 20:39:38
【问题描述】:
我正在为类似应用的 Instagram 构建自定义后端。
基本上有用户,用户可以关注的页面。当我想从名为posts的集合中获取帖子时,我想从我关注的用户和页面中获取帖子。
我怎样才能达到这种效果?
(我使用了Post.find({page:{$in:user.followingPages},creator:{$in:user.followingUsers}}),但这种方法只给了我符合这两个条件的帖子,我需要匹配其中一个或两者的帖子)
下面是我的用户模型
const userSchema = mongoose.Schema(
{
username: {
type: String,
default: 'nesibeyyubov',
},
bio: {
type: String,
default: '',
},
followingUsers: [
{
type: mongoose.Types.ObjectId,
ref: 'User',
},
],
posts: [
{
type: mongoose.Types.ObjectId,
ref: Post
},
],
followingPages: [
{
type: mongoose.Types.ObjectId,
ref: 'Page',
},
],
},
{ timestamps: true }
);
这是帖子模型
const postSchema = mongoose.Schema(
{
post: {
type: String,
required: true,
},
creator: {
type: mongoose.Types.ObjectId,
ref: 'User'
required: true,
},
likes: [
{
type: mongoose.Types.ObjectId,
ref: 'User',
},
],
},
{ timestamps: true }
);
【问题讨论】:
标签: node.js mongodb rest mongoose