如何删除mongoose中的特定子文档
嗨,我是新来的MongoDB和编程。 我想删除特定的父文档中的特定子文档,我正在使用Mongoose和Node.js。 这是我的模式模型(user.js文件):
var userStuff = mongoose.Schema({ itemName: String, itemDesc: String }); var userSchema = mongoose.Schema({ googleEmail: String, googleName: String, stuff: [userStuff] }); exports.user = mongoose.model('User', userSchema); exports.userStuff = mongoose.model('UserStuff', userStuff);
这是我如何删除:
var User = require("../../models/user.js"); ... var userId = req.session.passport.user; var deleteItemId = req.params.id; User.user.findOne({_id: userId}, function(err, user){ if(err){ console.log(err); }else { User.userStuff.remove({ _id: deleteItemId}, function(err, data){ if(err){ console.log(err); }else{ user.save(function(err){ if(err){ console.log(err); } else { res.status(200).send(); } }); } }); } });
你能告诉我如何删除特定用户的特定项目吗?
要删除特定用户的特定项目,可以使用$pull
操作符删除具有primefaces更新的子文档:
User.user.update( { "_id": req.session.passport.user }, { "$pull": { "stuff": { "_id": req.params.id } } }, function(err, numAffected) { if(err){ console.log(err); } else { res.status(200).send(); } } );
- 用Node和Express显示Markdown编码的博客post
- 如何解决WebStorm无法识别一些Node.js Express属性?
- MEAN stack api项目中没有定义如何解决引用错误响应数据?
- Express:设置maxAge后,单个文件的SetHeader'Cache-Control'
- 使用Express的Nodejs – 将mongoDB和mongoose添加到package.json并运行npm install时出错
- 试图了解Node JS的路由代码
- 节点http代理和expression
- 使用.is()检查请求types的Express.js不起作用
- Express.js路由错误的路由