2

MongoDBに保存されている製品ドキュメントのページ分割メカニズムを作成しようとしています。これをトリッキーにするのは、各ドキュメントが複数の色を持つことができるということです。ドキュメント自体ではなく、これらの色でページ付けする必要があります。たとえば、以下の例には2つの色があり、ページの結果では2としてカウントされます。

誰もがこれを最も簡単で最も感情的な方法でやって回るでしょうか?

前もって感謝します!

{
        "_id": ObjectId("4fdbaf608b446b0477000142"),
        "created_at": newDate("14-10-2011 12:02:55"),
        "modified_at": newDate("15-6-2012 23:55:43"),
        "sku": "A1051g",
        "name": {
            "en": "Earrings - Celebrity"
        },
        "variants": [
            {
                color: {
                    en: "Blue"
                }
            },
            {
                color: {
                    en: "Yellow"
                }

            }
        ]
    }
4

1 に答える 1

1

私はSammayeのソリューションが好きですが、別のアプローチでは、必要以上の結果を引き出すことができます。

たとえば、ページごとに100個のバリエーションが必要で、各商品に少なくとも1つのバリエーションがある場合、100個の商品を取得するために、100個の制限でクエリを実行します。したがって、少なくとも100個のバリエーションがあります。

おそらく、100を超えるバリエーション(各製品に1を超えるバリエーション)があるため、バリエーションの数を追跡しながらカーソルを反復処理しながら、製品のリストを作成します。

バリエーションが100個ある場合は、取得した100個のうち、リストにある製品の数をメモし、それを次のクエリのスキップとして使用します。

スキップするドキュメントの数を探す必要があるため、これは最終的に大きなスキップではコストがかかりますが、今のところ良い解決策になる可能性があります。

于 2012-06-27T14:34:28.807 に答える