0
私は、オブジェクトのMongoDBデータベース配列からfindまたはfindOneを使って単一のオブジェクトを照会しようとしました。配列内にネストされた単一のオブジェクトを取得するMongoDB
"clientteams"ネストされたオブジェクトをそのteamidを使用してプルしようとしています。
$ user ['team']はヒーローチームに所属する59dcf4d1fd82f416ac00608dの文字列です。私はいつも試してみた
文書の例
{
"_id":ObjectId("5a018682a8102a27349741cc"),
"clientteams":[
{
"teamid":ObjectId("59dcf4d1fd82f416ac00608d"),
"name":"heroes"
},
{
"teamid":ObjectId("59dde7effd82f42c6000062a",
"name":"villions"
}
]
}
PHPコードは、完全なドキュメントを返します。このような状況の種類については
$team = $collection->findOne(['clientteams.teamid' => new MongoDB\BSON\ObjectID($user['team'])],[ 'clientteams' => [ '$elemMatch' => [ 'teamid' => $user['team'] ]]]);
$team = $collection->findOne(['clientteams.teamid' => new MongoDB\BSON\ObjectID($user['team'])], ['clientteams.$' => 1]);
の後に使用することができますそれはまさにそれです、ありがとう – daatyson