mongodb查询一个数组中一个数组中的一个数组

时间:2018-11-28 11:55:32

标签: arrays mongodb go mgo

我有一组用户。每个都有一个书签数组。每个书签都有其所属的类别数组。导致这样的结构:

[
    {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,
        },
    },
)

(我认为)哪个翻译成mongo查询:

db.users.updateOne(
   { name: "Bob",
     bookmarks.url: "http://duckduckgo.com" }
   {
     $pull: { bookmarks.categories: "search" }
   }
)

0 个答案:

没有答案