node.js - 如何删除 mongodb 数据库中的特定 id?
问题描述
我在这里使用 nodejs、express、mongodb 和 mongoose!碰巧我正在尝试删除“关注者”文档中的一些 ID...
这是模型的一部分(我只是复制这部分,因为它是我感兴趣的部分):
var UserSchema = new mongoose.Schema({
followers: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
})
我正在尝试使用以下代码删除:
try{
let user = await User.findById(req.params.id);
user.followers.remove({_id: ObjectId(req.user._id)});
user.save();
}
catch(err) {
res.redirect('back');
}
req.user._id 是我试图从“关注者”中删除的用户的 ID,但是,每当我执行此操作时,页面只会继续加载并且没有任何反应。=我要删除的关注者不是被删除。有人可以帮我吗?
解决方案
You can delete
documents within an Array by using $pull
In single Query
Query :
db.getCollection('users')
.update({ "_id": ObjectId("5bb4747f316fcf310f3ef0a4") },
{ $pull: { followers: { _id: ObjectId('5bb4747f316fcf310f3ef0a5') } } },
{ multi: true })
Tested on
Mongo GUI
.
Test on below doc
{
"_id" : ObjectId("5bb4747f316fcf310f3ef0a4"),
"index" : "123456",
"followers" : [
{
"_id" : ObjectId("5bb4747f316fcf310f3ef0a6"),
"name" : "green"
},
{
"_id" : ObjectId("5bb4747f316fcf310f3ef0a5"),
"name" : "green"
}
]
}
推荐阅读
- javascript - Angular 5 - 从请求中删除默认 HTTP 标头
- meteor - 在流星中安装摩卡后出错
- ruby-on-rails - 启动jekyll服务失败
- r - 如何将多个现有图表放在同一个图中?
- javascript - 嵌入从 REST API 检索到的大型 PDF
- c++ - 如何从文件中读取字节?C++
- java - 在 youtube 上构建游戏教程:他们在画布上使用圆形瓷砖,我想使用正方形,我该如何实现?
- spring - Spring Boot Jetty 服务器不能通过 https (SSL) 工作
- verilog - Verilog中门控时钟的正确使用和设计
- firebase - 如何在 Firestore 上按数组中的项目存在进行查询?