私はmongo dbにソーシャルネットワークを構築しています。 以下は、グループコレクション内のドキュメントの構造です。これは、システムに存在する各ソーシャルグループを表します。ユーザーはこのグループの一部であり、jsonオブジェクトの場合は配列である 'members'プロパティによって表されます。mongo db find function in php
{
"group_name":"my group",
"members": [
{
"user_id": ObjectId("4e29341986ba75dc14000000"),
"joined": ISODate("2011-07-26T11:46:49.0Z")
},
{
"user_id": ObjectId("4e2ea94286ba75f81500000e"),
"joined": ISODate("2011-07-26T11:47:55.0Z")
},
{
"user_id": ObjectId("4e2eaa0786ba75e815000003"),
"joined": ISODate("2011-07-26T11:55:22.0Z")
},
{
"user_id": ObjectId("4e2eab7f86ba75ec1500000a"),
"joined": ISODate("2011-07-26T11:57:44.0Z")
},
{
"user_id": ObjectId("4e2eac3586ba75dc15000000"),
"joined": ISODate("2011-07-26T12:00:57.0Z")
},
{
"user_id": ObjectId("4e2eacae86ba75dc15000004"),
"joined": ISODate("2011-07-26T12:02:43.0Z")
},
{
"user_id": ObjectId("4e2eadbb86ba75ec1500000c"),
"joined": ISODate("2011-07-26T12:07:01.0Z")
}
]
私が直面している問題は、ユーザーが特定のグループに属するかどうかを確認することです。 これは私が思いついたものですが、うまくいかないようです。 助けてください。
$criteria = array(
'_id' => new MongoId($group_id),
'members' => array('user_id' => new MongoId($user_id))
);
return $collection->find($criteria);