[英]Apply modifier to more than one element of an object
我有一个这样的文档结构:
{
_id: ...,
name: ...,
keywords: {
group_a: [1, 2, 5],
group_b: [4, 7, 6]
}
}
我知道我可以添加元素到的要素之一 keywords
对象是这样的:
db.coll.update({_id: ...}, {
$addToSet: {
'keywords.group_a': {
$each: [9, 12, 17]
}
}
})
是否可以运行将相同的元素集添加到group_a
和 group_b
? 就像是
db.coll.update({_id: ...}, {
$addToSet: {
['keywords.group_a', 'keywords.group_b']: {
$each: [9, 12, 17]
}
}
})
哪个当然无效。
我事先知道了组的名称,但是“将它们添加到所有元素”的解决方案同样可以。
您可以使用单个$addToSet
运算符来影响多个字段,如下所示:
db.coll.update({_id: ...}, {
$addToSet: {
'keywords.group_a': {
$each: [9, 12, 17]
},
'keywords.group_b': {
$each: [9, 12, 17]
}
}
})
要使其保持干燥,您当然可以:
var each = { $each: [9, 12, 17] };
db.coll.update({_id: ...}, {
$addToSet: {
'keywords.group_a': each,
'keywords.group_b': each
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.