Nodejs 之 Mongoskin 动态添加删除列(fields)

~这里只记录删除操作,添加操作原理类似~

ejs模板 jquery.ajax请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
jQuery('a[name="doRemoveCol"]').click(function(){
$('#removeColModal').modal("show");
});
jQuery('.subRemoveColModal').click(function(){
var collectionName = $('.activeItem').find('span.collectionName').text();//获取当前集合名称
var colStrToDel = $('#colToDelete option:selected').text();//获取要删除的列名
if(colStrToDel.length!=0 && colStrToDel.indexOf("-")<0){
$.ajax({
url:'/removeCol',
type:'post',
cache:'false',
timeout:5000,
data:{"collectionName":collectionName,"colNameToDel":colStrToDel},
success:function(data){
if(data){
location.reload();
}
}
});
$('#removeColModal').modal("hide");
//如何重新定位到当前的集合
//$('.'+collectionName).addClass("activeItem");
}else{
alert("请重新选择要删除的列名");
}
});
路由控制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//删除列操作
router.post('/removeCol',function(req,res,next){
var collectionName = req.body.collectionName;
var colNameToDel = req.body.colNameToDel;
var jsonStr = '{"'+colNameToDel+'":""}';
var jsonObj=JSON.parse(jsonStr);
db.open(function(err,db){
db.collection(collectionName,{strict:true},function(err,myCollection){
if(err){
console.log(collectionName+"连接失败"+err);
} else{
myCollection.update({},{$unset:jsonObj},{multi:true},function (err, data) {
if (err) {
console.log(collectionName+"-删除列-"+colNameToDel+"-失败" + err);
} else {
console.log(collectionName+"-删除列-"+colNameToDel+"-成功");
res.send(data);
}
});
}
});
});
});