PHP/Mongo を使用して、次のようなデータ セットをクエリしています。
{
description:
{
0:
{level: (some int 0-50)},
1:
{level: (some int 0-50)},
...
n:
{level: (some int 0-50)}
}
}
$or を使用し、説明キーの数 (0 ... n) に基づいて、レベル 40 以上を検索する動的クエリを作成する関数を PHP で作成するにはどうすればよいですか?
現在、手動クエリで使用しているものは機能していません (一部のエントリで description.1、2、3 が存在しないためだと感じています)。
find("$or":{"description.0.level":[40,41,42,43,44,45,46,47,48,49,50],"description.1.level":[40,41,42,43,44,45,46,47,48,49,50],"description.2.level":[40,41,42,43,44,45,46,47,48,49,50],"description.3.level":[40,41,42,43,44,45,46,47,48,49,50]}})
それは私にエラーを与えます:
致命的なエラー:「$and/$or/$nor は空でない配列である必要があります」というメッセージを含むキャッチされない例外「MongoCursorException」
したがって、クエリを動的に構築し、機能する関数が必要です:)。