目前我有以下方案模型:
var userModel = mongoose.schema({
images: {
public: [{url: {type: String}}]}
});
我想删除" images.public"中的项目。来自他们的网址值,而不是他们的ID。
var to_remove = [{url: "a"}, {url: "b"}];
// db entry with id "ID" contains entries with these properties.
userModel.findByIdAndUpdate(ID,
{$pullAll: {"images.public": to_remove}},
function(err, doc) {
if (err) {
throw(err);
}
}
);
但是,这不会显示任何错误,也不会删除我要从数据库中删除的项目。我将如何恰当地针对这一目标?
答案 0 :(得分:2)
// Notice the change of structure in to_remove
var to_remove = ["a", "b"];
userModel.findByIdAndUpdate(ID,
{$pull: {"images.public": {url: {$in: to_remove}}}},
function(err, doc) {
if (err) {
throw(err);
}
}
);
这里的问题是变量to_remove
的结构发生了变化,幸运的是,在我的情况下这不是问题。