MongoDB - 从模式模型中仅查找布尔值为 false 的元素
MongoDB - find only elements with boolean false from Schema model
我不唱 MongoDB 和 NodeJS
我正在尝试查找 done: false 的所有任务以显示在仪表板上。
我正在按最新到最旧的顺序排序,发送和显示的限制为 4,但它正在发送所有任务,我希望只在完成时发送:false(这意味着任务不是 checked:done:true)但是我不知道如何将其放入填充选项中..
我的任务架构模型:
let mongoose = require("mongoose");
let taskSchema = new mongoose.Schema({
tasktitle: String,
taskcomment: String,
project: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Project'
}],
user: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}],
created: {
type: Date,
default: Date.now
},
done: {
type: Boolean,
default: false
}
})
module.exports = mongoose.model('Tasks', taskSchema);
我的任务控制器:
exports.render_pending_tasks = (req, res) => {
let userid = req.user._id;
User.findById(userid).populate({ path: 'tasks', options: { sort: { _id: -1 }, limit: 4 } })
.exec((err, tasks) => {
if (err) {
console.log(err);
} else {
res.send(tasks);
}
});
};
您可以在填充函数中使用 match
选项
User.findById(userid)
.populate({
match: { done: false },
path: 'tasks',
options: { sort: { _id: -1 }, limit: 4 }
})
我不唱 MongoDB 和 NodeJS 我正在尝试查找 done: false 的所有任务以显示在仪表板上。 我正在按最新到最旧的顺序排序,发送和显示的限制为 4,但它正在发送所有任务,我希望只在完成时发送:false(这意味着任务不是 checked:done:true)但是我不知道如何将其放入填充选项中..
我的任务架构模型:
let mongoose = require("mongoose");
let taskSchema = new mongoose.Schema({
tasktitle: String,
taskcomment: String,
project: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'Project'
}],
user: [{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}],
created: {
type: Date,
default: Date.now
},
done: {
type: Boolean,
default: false
}
})
module.exports = mongoose.model('Tasks', taskSchema);
我的任务控制器:
exports.render_pending_tasks = (req, res) => {
let userid = req.user._id;
User.findById(userid).populate({ path: 'tasks', options: { sort: { _id: -1 }, limit: 4 } })
.exec((err, tasks) => {
if (err) {
console.log(err);
} else {
res.send(tasks);
}
});
};
您可以在填充函数中使用 match
选项
User.findById(userid)
.populate({
match: { done: false },
path: 'tasks',
options: { sort: { _id: -1 }, limit: 4 }
})