Node.js 在mongoDB中删除数组中的项
我有一个名为Node.js 在mongoDB中删除数组中的项,node.js,mongodb,Node.js,Mongodb,我有一个名为Subject的集合,其中有一个名为“game name”的文档,其结构如下: { "_id": "5234676432", "name": "game name", "questions": [ { "_id": "12345", "question": "question", "answer1": "1", "answer2": "2",
Subject
的集合,其中有一个名为“game name”
的文档,其结构如下:
{
"_id": "5234676432",
"name": "game name",
"questions": [
{
"_id": "12345",
"question": "question",
"answer1": "1",
"answer2": "2",
"answer3": "3",
"answer4": "4",
"correctAns": 2
},
{
"_id": "56789",
"question": "question2",
"answer1": "1",
"answer2": "2",
"answer3": "3",
"answer4": "4",
"correctAns": 3
}
]
}
我想做的是删除用户单击的问题(假设他选择了id为“12345”
)
我试着使用以下方法:
Subject.update({name:game},{$pull:{questions:{{u id:questionToDelete}})代码>
但它似乎不起作用。我希望这能解决你的问题
Subject.update({name: "game name"},
{$pull: {"questions": {"_id.$oid": "12345"}}},
{multi: true});
试试看。我希望这能解决你的问题
Subject.update({name: "game name"},
{$pull: {"questions": {"_id.$oid": "12345"}}},
{multi: true});
再试一次。因为你是在拉问题的id,而不是问题本身,这是不同的。我建议您重新设计您的模式。请您提供正确的示例数据。数据似乎有误。你说你的收藏名是,游戏名
。但是您的查询将主题
作为您的collection@avivLo那我怎么才能把问题本身拉出来呢?这也不能提取id。@Aravind我刚刚意识到我写的是一个集合而不是一个文档抱歉。“游戏名称”是记录“主题”是收集。因为你是拉问题的id,而不是问题本身,这是不同的。我建议您重新设计您的模式。请您提供正确的示例数据。数据似乎有误。你说你的收藏名是,游戏名
。但是您的查询将主题
作为您的collection@avivLo那我怎么才能把问题本身拉出来呢?这也不能提取id。@Aravind我刚刚意识到我写的是一个集合而不是一个文档抱歉。“游戏名”是记录“主题”是收藏。