mongodb に 2 つのコレクション、または mongoose に 2 つのスキーマ (ユーザーとアカウント) があります。ユーザースキーマ
{
account: [{type: db.Schema.Types.ObjectId , ref: 'Account'}]
}
アカウント スキーマは次のようになります。
{network:String,
firstName: String,
lastName:String,
networkId:Number,
accessToken: String,
accessTokenExpiration:Number,
userId: {type: db.Schema.Types.ObjectId, ref: 'User'}
}
したがって、基本的にはユーザーとアカウントの間の 1 対多の関係です。エクスプレスでは、パラメーター userId (ユーザーの mongodb objectId と一致する) を持つ /api/user というユーザーの詳細を取得するルートがあります。このリクエストのユーザー オブジェクト全体を返したいと思います。サブドキュメント (つまり、すべてのユーザー アカウント) も含める必要があります。
例えば
{ "_id": "51e1b1b2993a51b0ce000005", "account": [ {
"network": "Facebook",
"networkId": xxxx,
"accessToken": "yyyyy",
"accessTokenExpiration": 11111,
"firstName": "John",
"lastName":"Doe"
} ] }
それよりも
{ "_id": "51e1b1b2993a51b0ce000005", "account": [ "51e1b1b2993a51b0ce000004" ] }
ユーザーオブジェクトのアカウント配列を実際に繰り返してアカウントコレクションを検索することなく、これにmongodbまたはmongooseの方法がありますか。
ありがとう。