単純なデータベースがあり、英語とスペイン語の両方、および/または英語とフランス語(スペイン語とフランス語は除く)を話すすべてのユーザーを検索しようとしているとします。次のように設定されたいくつかのレコードを含むusers
テーブルがあります。
{
"username": "jdoe",
"languages": ["english", "spanish", "french"]
}
次のように検索すると、期待どおりの結果が得られます。
db.find({ "languages" : { $all:['english', 'spanish'], $all:['english', 'french'] } })
しかし、Cakeでそれを行う方法がわかりません。私は次のように単一の言語ペアを一致させることができます:
$this->User->find('all', array('conditions' => 'User.languages' => array('$all' => array('english', 'spanish'))));
しかし、私は複数のペアを検索する方法に固執しています。配列の配列はそれを行わないようです。
これは他の誰かが始めたプロジェクトなので、私はCakePHPやMongoDBのニュアンスに特に精通していません。当たり前のことを見落としているような気がします。何か案は?