我目前正在开展一个项目,我们从今天开始将 couchbase 4.1 用于电子商务网站。
我想将我们网站的整个类别结构作为单个文档存储在 Couchbase 中,然后查询特定类别并在某些情况下返回该类别,而在其他情况下我想返回该类别及其子类别。
我很确定我必须使用数组索引器来提高这项工作的效率,但我对 Couchbase 还是很陌生,所以我不确定它应该如何构建(或者即使它是可能的)。
我的部分文档看起来像这样(结构中有 4 个级别和大约 8-10 个顶级类别):
{
"Categories": [
{
"DisplayName": "Category One",
"Id": 1,
"Categories": [
{
"DisplayName": "Child category",
"Id": 10,
"Categories": [
{
"DisplayName": "Child child category",
"Id": 100,
"Categories": [
{
"DisplayName": "Child child child category",
"Id": 1000
},
{
"DisplayName": "Sibling child category",
"Id": 1001
}
]
},
{
"DisplayName": "Child",
"Id": 101,
"Categories": [
{
"DisplayName": "Another child category",
"Id": 2001
}
]
}
]
}
]
}
]
}
如果我查询 Id = 100 我希望我的结果如下所示:
{
"DisplayName": "Child child category",
"Id": 100,
"Categories": [
{
"DisplayName": "Child child child category",
"Id": 1000
},
{
"DisplayName": "Sibling child category",
"Id": 1001
}
]
}
在某些情况下,我对生孩子不感兴趣。我尝试使用数组(N1QL)创建我的查询来选择我的数组,但我不确定在具有复杂对象级别时是否有可能。
可以给我一些关于这如何可能的指导(即使是这样?)。我们正在使用 Couchbase .NET 客户端。
最好的问候马丁