私はCodeigniterとMongoDBを使ってWebアプリケーションを開発しています。MongoDB文書で一致する配列項目を見つける
{
"_id": {
"$id": "4f609932615a935c18r000000"
},
"basic": {
"name": "The project"
},
"members": [
{
"user_name": "john",
"role": "user",
"created_at": {
"sec": 1331730738,
"usec": 810000
}
},
{
"user_name": "markus",
"role": "user",
"created_at": {
"sec": 1331730738,
"usec": 810000
}
}
]
}
私はuser_nameと役割の両方を使用して、このドキュメントを検索する必要があります。私はこのように見える文書を持ってデータベースに 。今、私は下のコードを使用しているときに私は両方を取得します。私は、user_nameとroleの両方に一致する配列項目を取得したいだけです。
$where = array (
'_id' => new MongoId ($account_id),
'members.user_id' => new MongoId ($user_id),
'members.role' => $role
);
$this -> cimongo -> where ($where) -> count_all_results ('accounts');
まあ:
ですから、このような何かを行うことができます。大きな注意点:投影で使用される場合elemMatchは最初に一致する要素のみを返します。残念ながら複数のマッチを返す方法はありません。参照:http://docs.mongodb.org/manual/reference/projection/elemMatch/ – UpTheCreek