У меня есть коллекция пользователей.У каждого из них есть множество закладок.Каждая закладка имеет массив категорий, к которым она принадлежит.Приводит к структуре, подобной этой:
[
{name: "Bob",
bookmarks: [
{url: "http://duckduckgo.com",
categories: [
"Search",
"Ducks",
],
},
],
},
]
Теперь дано имя, URL-адрес и название категории.Я хочу удалить указанную категорию соответствующей закладки.Но моя проблема в том, что все попытки вернуть целого пользователя или удалить целую закладку, а не только категорию.
На данный момент это моя лучшая попытка с использованием драйвера mgo:
type arbitraryJson map[string]interface{}
user := "Bob"
bookmarkURL := url.Parse("http://duckduckgo.com")
tagName := "Search"
err = userDB.Update(
arbitraryJson{
"name": user,
"bookmarks.url": bookmarkURL.String(),
},
arbitraryJson{
"$pull": arbitraryJson{
"bookmarks.categories": tagName,
},
},
)
Какойпереводит (я думаю) на запрос монго:
db.users.updateOne(
{ name: "Bob",
bookmarks.url: "http://duckduckgo.com" }
{
$pull: { bookmarks.categories: "search" }
}
)