【问题标题】:nodejs filter posts like in instagram feednodejs过滤帖子,如instagram feed
【发布时间】: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


    【解决方案1】:

    逗号表示,应该写成$or

    YourModel.find( { $or: [
                { page: { $in: user.followingPages } },
                { creator: { $in: user.followingUsers } },
       ],
    } );
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-03
      • 2019-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-21
      相关资源
      最近更新 更多