使用 Amazon 上的托管数据库选项查询集合属性
Query against collection attribute using a managed database option on Amazon
我想通过一组字符串值的字段在 O(log N) 时间内查询一些对象。
被索引的示例对象:
Restaurant: {
name: 'Bobs Burgers'
menu: ['hamburger', 'hotdog', 'lasagna']
}
示例伪查询:
SELECT * FROM restaurants WHERE menu='hamburger'
( or perhaps: 'hamburger' in menu )
很久以前我使用 Google App Engine,他们允许我在他们的 NoSql 数据库 Big Table.
上执行此操作
但是我知道亚马逊的 DynamoDB 不允许我这样做。我明白,如果我要将 DynamoDB 用于此类查询,我将需要使用代码来维护自己的二次查找 table(显然我不想这样做)。我的这个假设是否正确?或者是否有一种干净的技术用于使用具有 DynamoDB 限制的数据库在 O(log N) 时间内查询此类数据(即 sets/collections 不能在索引中使用)
或者我应该为此类用例使用不同的技术吗?例如 Amazon RDS - 它提供以下类型的数据库:
- 亚马逊极光
- PostgreSQL
- MySQL
- MariaDB
AWS DocumentDB 执行此操作。 MongoDB 兼容。
您所指的索引类型在 MongoDB 中称为“Multikey”:
"https://docs.mongodb.com/manual/core/index-multikey/"
这里使用的是 schemafreesql 在节目中看到他们的 post 黑客向任何 SQL 数据库添加了一个 nosql 层。以下是他们网站的修改示例。
[
{
"modify": {
"data": {
"Restaurant": [
{
"name": "Bobs Burgers",
"menu": [
"hamburger",
"hotdog",
"lasagna"
]
},
{
"name": "Sallys Burgers",
"menu": [
"eggs",
"french toast",
"danish"
]
},
{
"name": "Johns Burgers",
"menu": [
"grilled cheese",
"hamburger",
"patty melt"
]
}
]
},
"_comment": "Create Restaurants"
}
},
{
"query": {
"sfsql": "SELECT $s:Restaurant.name as 'Restaurant', $s:Restaurant.menu as 'menu' where $s:Restaurant.menu='hamburger'",
"_comment": "Query Restaurant by menu"
}
}
]
我想通过一组字符串值的字段在 O(log N) 时间内查询一些对象。
被索引的示例对象:
Restaurant: {
name: 'Bobs Burgers'
menu: ['hamburger', 'hotdog', 'lasagna']
}
示例伪查询:
SELECT * FROM restaurants WHERE menu='hamburger'
( or perhaps: 'hamburger' in menu )
很久以前我使用 Google App Engine,他们允许我在他们的 NoSql 数据库 Big Table.
上执行此操作但是我知道亚马逊的 DynamoDB 不允许我这样做。我明白,如果我要将 DynamoDB 用于此类查询,我将需要使用代码来维护自己的二次查找 table(显然我不想这样做)。我的这个假设是否正确?或者是否有一种干净的技术用于使用具有 DynamoDB 限制的数据库在 O(log N) 时间内查询此类数据(即 sets/collections 不能在索引中使用)
或者我应该为此类用例使用不同的技术吗?例如 Amazon RDS - 它提供以下类型的数据库:
- 亚马逊极光
- PostgreSQL
- MySQL
- MariaDB
AWS DocumentDB 执行此操作。 MongoDB 兼容。
您所指的索引类型在 MongoDB 中称为“Multikey”:
"https://docs.mongodb.com/manual/core/index-multikey/"
这里使用的是 schemafreesql 在节目中看到他们的 post 黑客向任何 SQL 数据库添加了一个 nosql 层。以下是他们网站的修改示例。
[
{
"modify": {
"data": {
"Restaurant": [
{
"name": "Bobs Burgers",
"menu": [
"hamburger",
"hotdog",
"lasagna"
]
},
{
"name": "Sallys Burgers",
"menu": [
"eggs",
"french toast",
"danish"
]
},
{
"name": "Johns Burgers",
"menu": [
"grilled cheese",
"hamburger",
"patty melt"
]
}
]
},
"_comment": "Create Restaurants"
}
},
{
"query": {
"sfsql": "SELECT $s:Restaurant.name as 'Restaurant', $s:Restaurant.menu as 'menu' where $s:Restaurant.menu='hamburger'",
"_comment": "Query Restaurant by menu"
}
}
]