我正在尝试将元素添加到文档 MongoDB 集合中的数组,聚合(非常规更新)匹配特定名称 但我没有找到正确的语法
例如:
{"name":"TEST1","department":"T1","skills":["JS","HTML"],"expY":5}
{"name":"TEST2","department":"T2","skills":["Java","CSS"],"expY":3}
我想添加到技能数组“CSS”,我尝试排序、匹配、组、项目、($add、$push 等)并且这些语法都不起作用
db.collection.aggregate([
{ $match : { name : "TEST1" } },
HERE I DONT KNOW WHAT IS THE RIGHT SYNTAX TO ADD ELEMENT TO skills array
])
答案 0 :(得分:1)
如果我没有正确理解您的问题,您希望匹配名称为“TEST1”的所有文档,然后将“CSS”添加到技能数组中。如果这是正确的,这是一种方法:
db.collection.aggregate([
{
$match: {
name: "TEST1"
}
},
{
$project: {
name: "$name",
department: "$department",
expY: "$expY",
skills: {
$concatArrays: [
"$skills",
[
"CSS"
]
]
}
}
}
])
以下是如何更新您的文档以将“CSS”添加到数组:
db.your_collection.update({ name : "TEST1" }, { $push: { skills: 'CSS' } })