Всем привет!
Народ подскажите как реализовать операции (редактирование\удаление) с элементами вложенного в документ массива?
Структура документа:
{
"user_id": 123
"categories": [
{
"category_name": "entertainment"
"tags": [
{
"list_name": "games",
"discription": "video games tags",
"list": ["psp","xbox","pc"]
},
{
"list_name": "tvshow",
"discription": "any tvshow",
"list": ["got","dexter","arrow"]
}
]
},
{
"category_name": "sports"
"tags": [
{
"list_name": "summer",
"discription": "summer sport",
"list": ["tennis","swimming","jumping"]
},
{
"list_name": "winter",
"discription": "winter sport",
"list": ["hockey","biathlon","ski"]
}
]
}
]
}
С добавлением и проверкой на уникальность разобрался, а вот с удалением и редактированием не могу понять как сделать. Например, нужно отредактровать
list_name=summer на
sum в категории
sport или удалить элемент
list_name=tvshow из категории
entertainment.
Удаление пытаюсь делать таким образом:
colQuerier := bson.M{
"user_id": "123",
"categories": bson.M{
"$elemMatch": bson.M{
"category_name": "entertainment",
"tags": bson.M{
"$elemMatch": bson.M {"list_name": "tvshow"}
}
}
}
}
change := bson.M{"$pull": bson.M{"categories.$.tags": bson.M{"list_name": "tvshow"}}}
err = c.Update(colQuerier, change)
Но удаление не срабатывает.
MongoDB v. 3.4
Как реализовать редактирование пока не могу понять...
Помогите разобраться.