我正在建立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 = false
或university = 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/