Mongoインスタンスから、特定のアカウントIDのすべてのユーザーを表示するデータを取得しようとしています。ユーザーが複数のアカウントの一部にすることができますので、私は現在、私のMongoのモデルのためにこのような構造を持っている:MongoDBは外部キーに2つのコレクションを集約します
UserModel:
username: {
type: String,
required: true,
unique: true,
lowercase: true
},
name: {
type: String,
required: true
},
password: {
type: String,
required: true
},
email: {
type: String,
required: true,
unique: true
},
をUsersToAccountModel:
{
user: {
type: Schema.Types.ObjectId,
ref: 'users'
},
userGroup: {
type: Schema.Types.ObjectId,
ref: 'userGroups'
},
account: {
type: Schema.Types.ObjectId,
ref: 'accounts'
},
default: {
type: Boolean,
default: null
}
}
UsersToAccountモデルコレクションがのObjectIdを保持していますそのフィールドにuser、account、およびuserGroupの名前があるので、リンクコレクションとして機能します。
UsersToAccountコレクション内の指定されたアカウントIDと一致するすべてのユーザーIDに対して、そのIDを取得してユーザーテーブルを照会して返します。 MySQLでクエリは次のようになります。
SELECT * userToAccountsのU2Aの左からユーザーを登録しようU ON u.id = u2a.userId WHERE u2a.account = $ accountIdを
誰もがここで私を助けることができる、私は疲れて凝集を持っていますが?私は非常に遠くになっていません。ここで
は、私のこれまで機能していない試みです:{
$lookup: {
from: <collection to join>,
localField: <field from the input documents>,
foreignField: <field from the documents of the "from" collection>,
as: <output array field>
}
}
は、だから私はあなたが必要だと思う: