1

評価の配列を作成したいのですが、この配列内で何らかの方法で評価とこの評価がチェックされた日付を関連付けたいと考えています。今、私はこの解決策を持っています:

> db.foo.find().pretty()
{
    "_id" : ObjectId("511a604f546e6b3019d5e673"),
    "ratings" : [
        {
            "rating" : 3,
            "date" : ISODate("2013-02-12T15:31:27.950Z")
        },
        {
            "rating" : 5,
            "date" : ISODate("2013-02-12T15:34:12.072Z")
        },
        {
            "rating" : 3,
            "date" : ISODate("2013-02-12T15:34:33.009Z")
        }
    ]
}

この「スキーマ」を使用すると、大きな問題が 1 つだけわかります。ドキュメントを日付で並べ替えるのは少し複雑だと思います。間違っている場合は、修正してください。どのように設計しますか?

4

1 に答える 1

3

評価を別の「評価」コレクションに保存します。

この戦略には、「foo」とその評価を表示するために 2 つのクエリ (コレクションごとに 1 つのクエリ) が必要であるという小さな複雑さが追加されますが、柔軟性とスケーラビリティの利点があります。

この 10gen からのアドバイス:コメントの保存も参照してください。

于 2013-02-12T15:59:13.207 に答える