2016-09-27 7 views
0

今、私はほとんどすべてを放射し、次にnode.jsサーバーで出力を組み合わせることによって、望ましい出力を得ています。couchdb内のすべての参照ドキュメントを含む

問題は、グループのメンバーを送信するためにポーリング文書からグループ文書にアクセスできないため、すべてのグループとメンバー/ created_byを発行する必要があることです。

これが可能かどうか、私の書類や何を再構成する必要があるのか​​を知りたいですか?

いずれにしても、これはサンプルドキュメントと出力です。

poll1:

{ 
    "_id": "0166801aff2aca04894bbd42b200003a", 
    "doc_type": "poll", 
    "question": "What to do?", 
    "choices": [ 
     { 
      "_id": "530d40abfb606d0fc12131e3b1b51590", 
      "text": "Nothing", 
      "votes": [ 
       "ef29b82702be83123837aefd001c46e9" 
      ], 
      "created_by": "ef29b82702be83123837aefd001c46e9" 
     }, 
     { 
      "_id": "f01c25231cef239b84a1a25bcbf0eb1b", 
      "text": "Everything", 
      "votes": [ 
       "ef29b82702be83123837aefd001c46e9", 
       "967cb55f3fbb27a25c45b5e7d8cecd4f" 
      ], 
      "created_by": "ef29b82702be83123837aefd001c46e9" 
     } 
    ], 
    "created_by": "ef29b82702be83123837aefd001c46e9", 
    "expire_date": "1475535772", 
    "groups": [ 
     "d6cdb694358b81ac0bcfa8574d7d6c72" 
    ] 
} 

グループ1:

{ 
    "_id": "d6cdb694358b81ac0bcfa8574d7d6c72", 
    "doc_type": "group", 
    "name": "Friends", 
    "members": [ 
     "ef29b82702be83123837aefd001c46e9" 
    ], 
    "created_by": "967cb55f3fbb27a25c45b5e7d8cecd4f" 
} 

USER1:

{ 
    "_id": "967cb55f3fbb27a25c45b5e7d8cecd4f", 
    "doc_type": "user", 
    "uuid": "d272c0bc-9f6d-42f9-9503-0e11735f7798", 
    "username": "Peter" 
} 

user2は:

{ 
    "_id": "ef29b82702be83123837aefd001c46e9", 
    "doc_type": "user", 
    "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
    "username": "Thomas" 
} 

所望の出力:

{ 
    "_id": "0166801aff2aca04894bbd42b200003a", 
    "doc_type": "poll", 
    "question": "What to do?", 
    "choices": [ 
     { 
      "_id": "530d40abfb606d0fc12131e3b1b51590", 
      "text": "Nothing", 
      "votes": [ 
       { 
        "_id": "ef29b82702be83123837aefd001c46e9", 
        "doc_type": "user", 
        "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
        "username": "Thomas" 
       } 
      ], 
      "created_by": { 
       "_id": "ef29b82702be83123837aefd001c46e9", 
       "doc_type": "user", 
       "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
       "username": "Thomas" 
      } 
     }, 
     { 
      "_id": "f01c25231cef239b84a1a25bcbf0eb1b", 
      "text": "Everything", 
      "votes": [ 
       { 
        "_id": "ef29b82702be83123837aefd001c46e9", 
        "doc_type": "user", 
        "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
        "username": "Thomas" 
       }, 
       { 
        "_id": "967cb55f3fbb27a25c45b5e7d8cecd4f", 
        "doc_type": "user", 
        "uuid": "d272c0bc-9f6d-42f9-9503-0e11735f7798", 
        "username": "Peter" 
       } 
      ], 
      "created_by": { 
       "_id": "ef29b82702be83123837aefd001c46e9", 
       "doc_type": "user", 
       "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
       "username": "Thomas" 
      } 
     } 
    ], 
    "created_by": { 
     "_id": "ef29b82702be83123837aefd001c46e9", 
     "doc_type": "user", 
     "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
     "username": "Thomas" 
    }, 
    "expire_date": "1475535772", 
    "groups": [ 
     { 
      "_id": "d6cdb694358b81ac0bcfa8574d7d6c72", 
      "doc_type": "group", 
      "name": "Friends", 
      "members": [ 
       { 
        "_id": "ef29b82702be83123837aefd001c46e9", 
        "doc_type": "user", 
        "uuid": "40a818e8-0f11-4832-9a18-erd3d85b88b0", 
        "username": "Thomas" 
       } 
      ], 
      "created_by": { 
       "_id": "967cb55f3fbb27a25c45b5e7d8cecd4f", 
       "doc_type": "user", 
       "uuid": "d272c0bc-9f6d-42f9-9503-0e11735f7798", 
       "username": "Peter" 
      } 
     } 
    ] 
} 

答えて

0

あなたはきっとlinked documentationsを使用してビューからグループを取得することができますが、ユーザーを取得することができなくなります。別の時間を照会する必要があります。

単一のクエリを使用する場合は、他のメタ情報をポーリングドキュメントに保存できます。たとえば、ユーザーIDを持つグループを持つことができます。

{ 
    "groups": [ 
    { 
     "groupId": "enter_your_group_id_here", 
     "usersIds": [ 
     "user1", 
     "user2", 
     "user3" 
     ] 
    } 
    ] 
} 
関連する問題