MongoDB查询布尔值.正确、错误或两者兼有



我正在为一个客户端构建一个MVEN项目,来自前端世界,我是MongoDB的新手,有一个基本问题。

在我的仪表板中,我有一个任务列表,其中有一个名为"的布尔字段;isFinished;并且我想过滤我的列表以显示所有任务、已完成的任务或带有选择输入的未完成任务。

这是我在猫鼬中的查询:

const tasks = await Task.find({ isFinished: req.query.isFinished }).sort({ createdAt: -1 });

当我的选择中有一个值true或false时,它工作得很好。但不知道如何显示所有任务。

我必须在show all任务的select中输入什么值,以及在mongoose中输入什么查询。

提前感谢!

您可以简单地执行

const tasks = await Task.find({}).sort({ createdAt: -1 });

或者,如果你真的想在isFinished上进行筛选,你可以用$in进行请求

const tasks = await Task.find({isFinished: {$in : [true, false]}}).sort({ createdAt: -1 });

您可以使用或处理此

const tasks = await Task.find({
$or: [
{ isFinished: true},
{ isFinished: false}
]
}).sort({ createdAt: -1 });

然而,这可以解决你的问题,但这种方式没有意义!或者这不是最佳实践。更好的解决方案是在客户端中查询所有任务并进行过滤

const tasks = await Task.find({}).sort({ createdAt: -1 });
let tasks_done = tasks.filter(task => task.isFinished)
let remaining_tasks = tasks.filter(task => !task.isFinished)

最新更新