我有文章和用户集合。 userId
是模型数据类型Schema.ObjectId
。在视图中,我展示了所有文章,并在顶部显示了所有用户的下拉列表以过滤文章。如果选择了下拉的占位符,则所有文章都将返回,如果选择了任何用户,那么该用户的文章将被退回。我的API代码如下。当选择下拉的占位符时,UserId
查询字符串将具有空值,否则它将具有任何正在出现的用户ID。如果条件变量为空,如何返回所有记录?
exports.list = function (req, res) {
var userId = '';
if (req.query.UserId) {
userId = req.query.UserId;
}
Article.find({userId: userId}).exec(function (err, articles) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(articles);
}
});
};
现在的问题是,因为当查询字符串参数为空,查询试图寻找其中有userId
为空白这些条款我不能返回的所有文章。那么,如果条件参数为空或空,我怎么能跳过条件检查?
我想要做的和下面给出的一样,即C#LINQ查询。
var userId = <value from query string>;
var lstArticles = dbContext.Articles.Where(objArticle => (userId == '' || objArticle.userId == userId));
@chridam对不起我的坏,这是错字,纠正它。 – Xyroid