3

趣味のWebアプリケーションを書いています。現在、JSONオブジェクトをクライアントに送信し、クライアントはそれらをブログ投稿に作成します。現在、JSONオブジェクトは次のようになっています。

{"id1": {"title": "title1", "content": "content1", ...}, "id2": {...}, ...}

時々順序が重要になり始めます。たとえば、ブログ投稿の表示のランダムな順序を作成したい場合。post_ids現在、のように見える別の配列を使用して["id1", "id2", ...]おり、その値は上記のJSONオブジェクトのキーとして使用されています。

明らかに、私のオブジェクトは次のようになります。

[{"id": "id1", "title": "title1", "content": "content1"}, ...]

しかし、IDでインデックスを作成する機能が失われ、毎回データをトラバースする必要があります。

時々私はオブジェクトも持っていて、そのIDを取得したいです。IDを最初のオブジェクトに含めることができます。

{"id1": {"id": "id1", "title": "title1", ...}, ...}

これらのCouchDB/MongoDBスタイルのドキュメントを含むデータ構造を設計するための標準的な方法は何ですか?

4

1 に答える 1

0

これらのドキュメントを設計するための標準的な方法があるとは思いませんが、CouchDBとMongoDBの両方が同じアプローチを使用していることは知っています。

{"_id":123、 "title": "title1"、 "content": "content ..."}

エンティティのIDはドキュメント内にあります。ドキュメントのリストを返すには、配列を返すだけです。

{"投稿":[{"_id":123、...}、{"_id":124、...}]}

私は、CouchDBが彼らの見解でこれをたくさん行っているのを見ます。配列を含む結果が表示され、次にその配列内のドキュメントが表示され、各ドキュメントにIDが含まれます。IDがドキュメントの外側/横に表示されることはありません。

また、あなたが言及したような軽量インデックスをたくさん見ました:

{"ids":[123、124、125、...]}

私の経験からも一般的です。

于 2013-03-08T23:20:40.833 に答える