MongoDB 中的标签

Tags in MongoDB

我是 MongoDB 的新手。

我有一个产品可以有多个标签。我看到教程中的集合是这样的:

{
    _id: 1234,
    tags: ["stationery","electronics"]
}
{
    _id: 456,
    tags: ["home","electronics"]
}
{
    _id: 135,
    tags: ["books","stationery"]
}

我有一个固定的标签列表。我所有的产品都将属于这些标签。现在我的问题是如何存储这样的列表,以便在添加新产品时我可以显示此列表并要求用户仅从此列表中添加 select 标签?

我是否应该制作另一个名为 Tags 的文档并在每个集合中保存引用?如果我这样做,那么在搜索属于图书类别的产品时,我将不得不 运行 2 个查询。

求推荐!

像您在教程中看到的那样存储标签。

{
    _id: 1234,
    tags: ["stationary","electronics"]
}

这样可以方便查询。现在,为了服务于您的标签添加 UI,我将创建一个单独的集合 "tags",其中将包含非常简单的文档

{ name: 'stationary' }
{ name: 'electronics' }
{ name: 'books' }

(mongodb 会在它们上面创建一个 _id 字段,但你不关心它)。

因此您的 UI 将从该集合中读取文档并使用 name 属性 填充 tags 属性 产品。