Javascript 如何将文档从一个集合移动到另一个集合?猫鼬
我有一个待办事项列表,我在其中存储未完成和已完成的项目。接下来,我有一些按钮,一个用于删除它工作的项目,另一个用于检查或取消选中该项目是否完成 我不知道如何编写一个函数来复制和删除数组a中的项并将其放入数组B中 以下是我的模式以及如何呈现数组:Javascript 如何将文档从一个集合移动到另一个集合?猫鼬,javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我有一个待办事项列表,我在其中存储未完成和已完成的项目。接下来,我有一些按钮,一个用于删除它工作的项目,另一个用于检查或取消选中该项目是否完成 我不知道如何编写一个函数来复制和删除数组a中的项并将其放入数组B中 以下是我的模式以及如何呈现数组: var todoSchema = new mongoose.Schema({ name: String }); var todoList = []; var compList = []; var Todo = mongoose.model("To
var todoSchema = new mongoose.Schema({
name: String
});
var todoList = [];
var compList = [];
var Todo = mongoose.model("Todo", todoSchema);
// default route
app.get("/" , function(req, res){
Todo.find({}, function(err, todoList){
if (err) {
console.log(err);
} else {
res.render("todo.ejs", {todoList: todoList, compList: compList});
}
})
});
以下是新项目的代码:
app.post("/newTodo", function(req, res){
console.log("item submited");
var newItem = new Todo({
name: req.body.item
});
Todo.create(newItem, function(err, Todo){
if (err) {
console.log(err);
} else {
console.log("Inserted item: " + newItem);
}
})
res.redirect("/");
});
以下是删除项目的代码:
app.get("/delete/:id", function(req, res){
Todo.findById(req.params.id, function(err, Todo){
if (err) {
console.log(err);
} else {
console.log(req.params.id);
Todo.remove(function(err, Todo){
console.log("Deleted item");
res.redirect("/");
})
}
});
});
您需要增强todoSchema以跟踪Todo是否完成。将completed:Boolean添加到todoSchema中,然后需要过滤Todo.find的结果,以便在todoList中返回未完成的Todo,并将已完成的Todo放置在compList中。所有这些逻辑都应该在app.put调用中,因为您正在修改文档 顺便说一下,使用.findbyiandremove可以提高删除效率。删除条目时,您还应该使用app.delete而不是app.get
旁注:您没有将文档从一个mongoose集合移动到另一个mongoose集合。每个模式定义一个集合,因为您只有一个模式,实际上您正在将所有已完成或未完成的todo文档存储在同一个todo集合中。谢谢,这是个好主意。我去试试。删除:我以前试过,但它对我不起作用,所以我就这样编码。旁注:感谢您的解释,我是mongo的初学者