我正在建立buildQuery以获得社交供稿的帖子。

用户发表帖子时,他们的大学将以university的形式保存在帖子中。他们还可以选择确保只有同一所大学的其他学生可以看到它。

如果他们想这样做,则在帖子模型上将uniOnly设置为true

这是PostSchema的一部分:

const PostSchema = new Schema({
  university: {
    type: String,
    required: true
  },
  uniOnly: {
    type: Boolean,
    required: true
  }
});


在下面的buildQuery中,请求提要的用户大学(存储在其个人资料文档中)uni作为参数传递。

所以我想做的是检查帖子中的uniOnly设置为true,而传入的uni与帖子中的university不同,则不应在帖子中看到提要。

我怎样才能做到这一点?我应该使用$where吗?或一些if语句
怎么样?:

const buildQuery = (criteria) => {
  const { uni } = criteria;
  const query = {};

  // Should I be using $where?
  query.uniOnly = { $where: }

  return query;
};


buildQuery很大,因此我将其缩小为相关的值。

谢谢

最佳答案

如果要查询uniOnly = falseuniversity = criteria.uni的帖子,则可以使用$or在逻辑上组合术语:

const buildQuery = (criteria) => {
  const query = { $or: [ {uniOnly: false}, {university: criteria.uni} ] };
  return query;
};

关于javascript - 如何对两个 Mongoose 值进行双重查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42100017/

10-11 01:28