如何检查某个项目是否存在于文档的不同字段中?
我目前有以下内容:
Room.findOne({
editUrl: req.params.roomName
}, function(err, room) {
if (err) {
return err;
}
}
我还要检查字段viewUrl中是否存在 req.params.roomName 。 如何在不必另外执行findOne()的情况下执行此操作。
编辑: 使用$或运算符我可以检查项目是否在字段1或字段2中。我现在需要的是如果我正在搜索的项目在字段1中而如果它在字段2中则如何添加条件
编辑2:请在下面找到我的原始功能:这样做首先检查参数是否存在。如果存在,则更新该文档并将用户添加到users数组中。现在我需要检查参数是否存在于editUrl字段或viewUrl字段中。如果它存在于editUrl字段中,则将用户添加到 users 数组中,如果它存在于viewUrl字段中,则将用户添加到 viewOnlyUsers 数组。
Room.findOne({
editUrl: req.params.roomName
}, function(err, room) {
if (err) {
return err;
}
if (room != null) {
Room.update({
editUrl: req.params.roomName
}, {
$addToSet: {
users: req.user._id
}
}, function(err,
count) {
if (!count) {
return err
}
});
res.render('account/board');
} else {
res.sendStatus(404);
}
});
答案 0 :(得分:1)
您只需使用$或运算符
Room.findOne({
$or:[{editUrl: req.params.roomName},{viewUrl: req.params.roomName}]
}, function(err, room) {
if (err) {
return err;
}
}
$或运算符https://docs.mongodb.org/manual/reference/operator/query/or/的文档