1

次のようなローカリゼーションを含むドキュメントを想像してみましょう:

{  
    "Id":"product/1",  
    "CategoryId":"categories/1",  
    "Translations":[  
        { "Lang": "en", "Title:"en title"},  
        { "Lang": "hr", "Title:"hr title"}
    ]
} 

そして、インデックスCategoryId:"categories/1" AND Lang:"en"を照会すると、Raven から投影/平坦化/フィルター処理された結果を取得したいと考えています。

{  
    "Id":"product/1",
    "CategoryId":"categories/1",  
    "Lang":"en",  
    "Title":"en title"
}

基本的に、ドキュメントにはローカライズされた文字列が配列に含まれており、1 つの言語のみを取得したいと考えています。クライアントでのフィルタリングは問題ではありませんが、Transformer を使用してレイヴン サーバーでそれを行うにはどうすればよいですか?

または、ローカライズされたコンテンツを保存するための他のドキュメント構造を提案できますか? 現在、私は Product と ProductTranslation という別々のドキュメントを (言語ごとに) 持っていますが、すべてを 1 つのドキュメントの下に置きたいと思っています (もっと OO:/ に見えます)。

4

1 に答える 1

1

製品間の唯一の違いが翻訳である場合は、別のモデルを使用します。商品ドキュメントには、categoryId、price、およびその他すべての商品情報が含まれます。

製品が の下に保存されていると仮定すると、追加のドキュメントをなどproducts/1の ID の下に保存し、そこに翻訳された文字列を保存できます。その後、ResultTransformers を使用して、翻訳された文字列をクエリの最終結果に挿入できます。products/1/enproducts/1/es

于 2013-08-10T21:19:55.857 に答える