【问题标题】:How to store item's keywords in Mongodb如何在Mongodb中存储项目的关键字
【发布时间】:2016-02-10 09:10:17
【问题描述】:

我需要在 MongoDB 中存储一些以“类别”和“子类别”为特征的元素,例如:

{"item1": {"categories":"restaurant, bar", "subCategories":"fish, steak, coffe"}}

我的问题是,考虑到我将搜索 'bar' 或 'fish' 之类的关键字,存储此项目的最佳方式是什么?将所有关键字存储为一个字符串(案例 1)还是字符串数组(案例 2)更好?

  {"item1": {
            "categories"   : "restaurant, bar", 
            "subCategories": "fish, steak, coffe"
           }
  }

或者

{"item1": 
          {
           "categories"   : ["restaurant", "bar"], 
           "subCategories": ["fish", 'steak", "coffe"]
          }
}

哪个性能最好?

【问题讨论】:

  • 那是什么问题?
  • 两种可能性中哪一种是最好的?将所有关键字保存为一个字符串,还是保存为字符串数组?哪个性能最好?
  • 存储为数组。因为如果您以逗号分隔存储,那么稍后您将不得不拆分字符串并且可能还必须执行其他操作。 Go 将数组。
  • 但是拆分将在客户端执行(我猜在大多数情况下)。我想提高服务器搜索性能
  • 数组是最好的解决方案,然后是逗号分隔的字符串。

标签: json mongodb mongodb-query


【解决方案1】:

您应该使用第二个选项。

{"item1": 
          {
           "categories"   : ["restaurant", "bar"], 
           "subCategories": ["fish", 'steak", "coffe"]
          }
 }

这使您可以在 DB 端使用 $in $not 等运算符进行查询。您的第一个选项将要求您以全文搜索或在客户端进行搜索,这会比较慢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 2015-02-28
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多