さて、ここに私の問題があります。私のデータベースの各ユーザーには、「友達」というフィールドがあります。フレンドが追加されるたびに、一意の ID が取得され、次のように、この ID の文字列型バージョンに従ってフレンド フィールドに入力されます。
$user = AppDatabase::getInstance()->getUser($user_id);
$user_friends = $user['friends'];
$new_friend = array
(
'friend_id'=>new MongoId($friend_id),
'nickname'=>(string)$nickname,
'friendpic'=>''
);
$user_friends[(string)$friend_id] = $new_friend;
これはすべて問題なく、正常に動作します。次のような結果がデータベースに表示されます。
'friends':
{
503da7ba65d351681a00000c
{
'friend_id':{$oid:503da7ba65d351681a00000c},
'nickname':"Heisenberg",
'friendpic':''
}
}
今、私ができるようにする必要があるのは、friend_id のみを使用し、user_id (またはユーザーに関するもの) を知らずに友人を見つけることです。これを行う方法について少し混乱しています。基本的に頭の中のプロセスは次のとおりです。
- 友達のIDを渡す
- ユーザーのコレクションを照会する
- すべての「user_friends」フィールドを検索
- これから、最初に渡したIDに一致するキーを見つけます
- 正しい友達オブジェクトで終わる
私が試していることはどれも実際には機能しません。おそらく、データの構造が間違っているのでしょう。誰かが私を正しい道に導くことができれば、本当に感謝しています。
乾杯!