#javascript #mongodb #mongoose
#javascript #mongodb #mongoose
Вопрос:
В настоящее время у меня есть следующая схема модели:
var userModel = mongoose.schema({
images: {
public: [{url: {type: String}}]}
});
Я хочу удалить элементы из «images.public» по их значению url, а не по их идентификатору.
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);
}
}
);
Однако это не показывает никаких ошибок и не удаляет элементы, которые я хочу удалить из базы данных. Как бы мне соответствующим образом настроить это?
Ответ №1:
// 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
, к счастью, в моем случае это не было проблемой.