如何使用MongoDB和Jade(Express.js)_id删除文档
How to delete document by _id using MongoDB and Jade (Express.js)?
>我已经成功地使用mongodb建立了一个数据库,并且我设法将新条目添加到我的集合中。但是,当我使用类似的方法删除时,没有任何反应。
快递.js代码
router.post('/deleteproject', function(req, res) {
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/plugd';
MongoClient.connect(url, function(err, db) {
if (err) {
console.log("Unable to connect to server", err);
} else {
console.log('Connected to server');
var collection = db.collection('projects');
collection.remove(
{_id: new mongodb.ObjectID(req.body)}, function(err, result) {
if (err) {
console.log(err);
} else {
res.redirect("thelist");
}
db.close();
});
}
});
});
翡翠代码
h2.
ul
Projects
each project, i in projectlist
#project_list_item
a(href='#') #{project.owner} - #{project.project}
p #{project.ref1}
p #{project.ref2}
p #{project.ref3}
form#form_delete_project(name="deleteproject", method="post", action="/deleteproject")
input#input_name(type="hidden", placeholder="", name="_id", value="#{project._id}")
button#submit_project(type="submit") delete
我想通了。这是我在 express.js 中使用路由器从 mongodb 集合中删除数据的修复程序。
快递.js
router.post('/deleteproject', function(req, res) {
var MongoClient = mongodb.MongoClient;
var ObjectId = require('mongodb').ObjectId;
var url = 'mongodb://localhost:27017/app';
MongoClient.connect(url, function(err, db) {
if (err){
console.log('Unable to connect to server', err);
} else {
console.log("Connection Established");
var collection = db.collection('projects');
collection.remove({_id: new ObjectId(req.body._id)}, function(err, result) {
if (err) {
console.log(err);
} else {
res.redirect("thelist");
}
db.close();
});
}
});
});
翡翠代码
extends layout
block content
h2.
Projects
ul
each project, i in projectlist
#project_list_item
a(href='#') #{project.owner} - #{project.project}
p #{project.ref1}
p #{project.ref2}
p #{project.ref3}
form#form_delete_project(name="deleteproject", method="post", action="/deleteproject")
input#input_name(type="hidden", placeholder="", name="_id", value="#{project._id}")
button#submit_project(type="submit") delete
翡翠文件正在渲染到一个名为"thelist"的页面,该页面列出了集合中的每个项目。
窗体部分处理列表中每个项目的删除功能。
只要我保持Jade的缩进满意:),这对我有用
试试这个,看看它是否有效:
router.post('/deleteproject', function(req, res) {
var MongoClient = mongodb.MongoClient;
var url = 'mongodb://localhost:27017/plugd';
MongoClient.connect(url, function(err, db) {
if (err) {
console.log("Unable to connect to server", err);
} else {
console.log('Connected to server');
var collection = db.collection('projects');
collection.remove(
{_id: req.body}, function(err, result) {
if (err) {
console.log(err);
} else {
res.redirect("thelist");
}
db.close();
});
}
});
});
由于您使用的是MongoDB的Node.js Native Driver,因此您无需在ObjectId中编组_id。您可以直接将_id指定为string
相关文章:
- 按对象的 ID 删除对选定对象的对象引用
- 如何在javascript中使用动态ID删除文本框
- 如何使用 id 删除 JavaScript 中的 Div 元素
- 根据其中的 ID 删除对象数组
- 如何通过 php 中的唯一 ID 删除 Json
- 按 id 删除主干模型
- redips.拖动 获取行 ID 删除并发送到服务器
- YDN 数据库 按 ID 删除记录 (索引数据库)
- 使用javascript按ID删除输入元素
- 按ID删除主干行
- 如何使用jquery通过ID删除多个href链接
- 根据动态创建的Id删除特定图像
- 根据所选id删除字符串中的特定文本行
- 如何使用自定义id删除fabric.js对象
- 如何通过id删除元素
- 使用Jquery Datatable Plugin按Id删除行
- 使用行ID删除循环中的行'不能读取property '零# 39;
- 使用行id删除一行javascript
- 如何通过id删除标记
- 如何通过特定的Id删除内部子对象