我目前正在为一个用例评估不同数据库的效率。在 Mongodb 中,想要存储大约 100 万个具有以下结构的对象。每个对象将在 foo 数组中有 5 到 10 个对象。
{
name:"my name",
foos:[
{
foo:"...",
bar:"..."
},
{
foo:"...",
bar:"..."
},
{
foo:"...",
bar:"..."
}
]
}
我经常需要搜索 foos 集合包含具有特定属性的对象的对象,例如:
// mongo collection
[
{
name:'my name',
foos:[
{
foo:'one_foo',
bar:'a_bar'
},
{
foo:'two_foo',
bar:'b_bar'
}
]
},
{
name:'another name',
foos:[
{
foo:'another foo',
bar:'a_bar'
},
{
foo:'just another foo',
bar:'c_bar'
}
]
}
]
// search (pseudo code)
{ foos: {$elemMatch: {bar: 'c_bar'}} }
// returns
{
name:'another name',
foos:[
{
foo:'another foo',
bar:'a_bar'
},
{
foo:'just another foo',
bar:'c_bar'
}
]
}
这可以用 mongo 有效地完成吗?应该如何设置索引?我不想让你为我评估性能,只是想知道 mongo 对我的用例的执行情况或优化的样子。