我需要在MongoDB中存储一些元素,其特征是'类别'和'子类别',类似于:
{" item1":{" categories":" restaurant,bar"," subCategories":" fish,steak ,咖啡"}}
我的问题是,考虑到我会搜索像' bar'这样的关键字,这个项目存储的最佳方式是什么?或者' fish' ?是否更好地将所有关键字存储为一个字符串(案例1)或字符串数组(案例2)?
{"item1": {
"categories" : "restaurant, bar",
"subCategories": "fish, steak, coffe"
}
}
或
{"item1":
{
"categories" : ["restaurant", "bar"],
"subCategories": ["fish", 'steak", "coffe"]
}
}
哪种表现最佳?
答案 0 :(得分:1)
您应该使用第二个选项。
{"item1":
{
"categories" : ["restaurant", "bar"],
"subCategories": ["fish", 'steak", "coffe"]
}
}
这使您可以使用$in
$not
等操作数在数据库端进行查询。您的第一个选项将要求您以全文搜索或客户端方式进行搜索,并且会慢一些。