私は現在、電子商取引サイトのために今日のcouchbase 4.1を使用しているプロジェクトに取り組んでいます。Couchbase 4.5文書の返品
ウェブサイトのカテゴリ構造全体を単一のドキュメントとしてCouchbaseに保存し、特定のカテゴリを検索してそのカテゴリを返す場合や、カテゴリとその子カテゴリを返す場合があります。
この作業を効率的にするために配列インデクサーを使用しなければならないと確信していますが、私はCouchbaseにはかなり新しくなっていますので、どのように構造化するべきか(あるいはそれが可能であっても)私はID = 100を照会した場合、私は私の結果を持っていると思い
{
"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
}
]
}
]
}
]
}
]
}
:私の文書の
一部はこのようになります(構造の4つのレベルは約8-10トップレベルのカテゴリがあります)次のようになります。
{
"DisplayName": "Child child category",
"Id": 100,
"Categories": [
{
"DisplayName": "Child child child category",
"Id": 1000
},
{
"DisplayName": "Sibling child category",
"Id": 1001
}
]
}
場合によっては、私は子供を持つことを断っていません。配列(N1QL)を使用してクエリを作成して配列に選択しようとしましたが、複雑なオブジェクトのレベルを持つ場合でも可能かどうかはわかりません。
これがどのように可能であるかについて私にいくつかの指針を与えることができます(それは?)。私たちはCouchbase .NETクライアントを使用しています。
敬具マーティン
subdoc *可能性がありますが、クエリには適していません。あなたが望むパスを知る必要があります。 **を取得します。ただし、ルートオブジェクトがカテゴリごとに1つのエントリ(カテゴリIDである属性名)のdictionaryであるように文書構造を変更できる場合は、これが機能する可能性があります。 –