2011-12-30 9 views
2

mongodb and or combo PHPを使用して[MongoCursorException]を取得していることを除いて、$または配列にオブジェクトが含まれている必要があります。"および" within "または" in "または" in PHP "のMongoDBクエリ

も読んでこのhttp://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or

どのようにすることができます1巣AN "AND" "OR" のMongoDBでPHPを経由しての内部?グループIDにあり、アクティブであるか、(利用者に属し、アクティブではありません)ポストの

'group_id' => '4eec13b5-aeb4-48ee-9619-449125af0e18', 
'$or' => 
array (
    0 => 
    array (
    0 => 
    array (
     'active' => 0, 
     'user_id' => '4eea7b76-5d34-4036-8344-120c0aaa1bdc', 
    ), 
), 
    1 => 
    array (
    1 => 
    array (
     'active' => 1, 
    ), 
), 
) 

ニードリスト:はここ(でvar_exportを経由して)私の条件引数です。

非常に簡単ですが、PHPのクエリでMongoDBを試してみますが、$やエラーが出ます。これは可能ですか? $は必須ですか?

答えて

5

あなたの質問は間違っています。 、

{ 
    "group_id" : "4eec13b5-aeb4-48ee-9619-449125af0e18", 
    "$or" : [ 
        { "active" : 0, "user_id" : "4eea7b76-5d34-4036-8344-120c0aaa1bdc" }, 
        { "active" : 1 } 
      ] 
} 

多かれ少なかれ:JSONにおいては、グループIDの

{ 
    "group_id" : "4eec13b5-aeb4-48ee-9619-449125af0e18", 
    "$or" : [ 
        [ { "active" : 0, "user_id" : "4eea7b76-5d34-4036-8344-120c0aaa1bdc" } ], 
        [ null, { "active" : 1 } ] 
      ] 
} 

ように見えるAND(ユーザーに属し、アクティブでない)アクティブORであるであろう、それは幾分として表現されなければなりません

array(
'group_id' => '4eec13b5-aeb4-48ee-9619-449125af0e18', 
'$or' => 
    array (
     0 => 
      array (
       'active' => 0, 
       'user_id' => '4eea7b76-5d34-4036-8344-120c0aaa1bdc', 
      ), 
     1 => 
      array (
       'active' => 1, 
      ) 
    ), 
) 
+0

ありがとうございました!私はjsonとして私のPHPを見始めるまで、私は問題を解決しませんでした。 jsonを使ってコマンドラインでクエリをテストすることは、mongoを使って物事を理解する上で非常に良い方法です! – Aaron

関連する問題