这是我的spa模式。
const spaSchema = new Schema({
name: String,
contactNumbers: String,
address: String,
images: [String],
});
我想删除图像数组中的元素名称为'abc.jpg'且文档ID为x的元素。我该如何实现?
答案 0 :(得分:2)
我不太确定您的问题,因此我将介绍2个选项。在这两种情况下,我都假定您正在对library(dygraphs)
library(xts)
my_js <- 'function(d)
{
var d = new Date(d.getTime() + 7200*1000);
var weekday = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var result = ""
result += weekday[d.getDay()] + " " + d.getDate()
result += " " + months[d.getMonth()] + " " + d.getFullYear();
return result;
}'
set.seed(69)
dg <- dygraph(xts(rnorm(100), Sys.time() + seq(100)*10000), main = 'random_graph')
dyAxis(dg, name = "x", axisLabelFormatter = my_js)
集合进行更新。
spa
字段要从所需文档中完全删除字段images
,可以使用MongoDB $unset operator,如下所示:
原始文件:
images
更新方法:
{
_id : ObjectId('some_id'),
name : 'abc.jpg',
contactNumbers: '...',
address: '...',
images: ['...']
}
这将导致:
Spa.update(
{ name : 'abc.jpg', _id : ObjectId('some_id') },
{ $unset : { images : null } }
);
{
_id : ObjectId('some_id'),
name : 'abc.jpg',
contactNumbers: '...',
address: '...'
}
字段中的一个元素如果您尝试从images
数组中删除一个具有特定值的元素,则可以使用MongoDB $pull operator,例如:
原始文件:
images
更新方法:
{
_id : ObjectId('some_id'),
name : '...',
contactNumbers: '...',
address: '...',
images: ['123.jpg','abc.jpg','def.jpg']
}
这将导致:
Spa.update(
{ _id : ObjectId('some_id') },
{ $pull : { images : 'abc.jpg' } }
);
我希望那是您想要的。 =]
答案 1 :(得分:1)
要从图像(存储图像名称的位置)中删除一个元素,应使用$ pull作为波纹管
Spa.update(
{ _id : mongoose.Types.ObjectId('some_id') },
{ $pull : { images : 'IMAGE_NAME_THAT_YOU_WANT_TO_REMOVE_FROM_ARRAY' } }
);