在MongoDB中存储数组或字符串是更好的做法吗?

时间:2019-01-22 16:23:31

标签: arrays mongodb

我有一个主要包含字符串的mongo数据库,尽管某些字段确实需要是数组。由于我只能在Mongo集合中索引一个数组,因此将字符串数组存储为逗号分隔的字符串,然后在我的API中进行转换,还是将它们保留为字符串会更好吗?如果说得通?

例如,如果我有一个看起来像这样的气球集合:

C:\Programs\myApplication\app.exe

一个垃圾示例,但是,我的想法是,最好将BalloonColours作为字符串存储在db中,并在API中的字符串和数组之间进行转换,这样我就可以对该字段以及我的BalloonPurchases字段进行索引,但是我对Mongo不太了解,想知道这是否会引起问题,或者被认为是不良做法。我的集合很大,因此将字符串转换为数组,反之亦然,比起检查未索引字段等,搜索会更长吗?

我希望不要太不清楚。

欢呼

1 个答案:

答案 0 :(得分:1)

MongoDB支持以下内容:

  • 存储字段的数组值
  • 索引具有数组值的字段。

仅提及的限制是,如果要创建复合索引,则不能有两个字段都使它们都具有数组值。

请参考以下链接: https://docs.mongodb.com/manual/core/index-multikey/

确切的问题是更好的做法,如果您在文档中需要一个数组,则将其作为数组存储在MongoDB中是有道理的,避免了代码中不必要的转换。 MongoDB支持数组,因此可以使用它。