初学 mongodb,对于 mongodb 的索引比较迷惑,希望大家能解答下我的疑惑
假设 mongodb 里保存着这样的数据,这数据有挺多键,但是有多少键不定
{
"a1":1,
"a2":2,
"a3":3,
"a4":"a",
......
"a39": "ff"
"a40": "gg",
......
"aXX": xxx
}
我希望 a1~aXX 的所有字段都能搜索,并且字段之间还能互相组合成较为复杂的搜索逻辑,并且根据哪个字段排序也是不可知的。如下面这些搜索逻辑
a1<10 and a4="a" order by a4,a1
(a4!="a" and a10>100) or (a2>200 and a40="gg") order by a40
如果我要创建索引的话,是不是只能为 a1,a2,a3,...,aXX 各自创建单键索引(Single Field Indexes)?这样的话遇到复杂的查找逻辑是不是性能会很差?
而且我保存的数据不止这一种类型,别的类型的数据也都需要每个键都可搜索的话,索引数量可能会有成百上千个,数据量一大是不是内存占用会非常庞大?
PS:本来考虑 mysql,但是因为需求是保存的数据结构不定,mysql 不太适合,所以才常识学习 mongodb
PS2: 如果 mongodb 不适合的话,有没有什么 db 是适合这种数据结构不定且所有字段都要能搜索的场景的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.