在PHP的MongoDB查询中"和"在"或"中

Aar*_*ron 2 php mongodb mongodb-php

mongodb和or combo类似于此,除了我使用php并获取[MongoCursorException] $或数组必须包含对象.

另请阅读http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or

如何通过PHP在MongoDB中的"OR"内嵌入"AND"? 这是我的条件参数(通过var_export):

'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,
    ),
  ),
)
Run Code Online (Sandbox Code Playgroud)

需要列组ID并且处于活动状态的帖子列表(属于用户且不活动).

在SQL中非常容易,但无论我通过PHP查询在MongoDB中尝试哪种变化,都会得到$或错误.这可能吗?是$并要求?

Nat*_*Nat 5

你的查询是不正确的.在JSON中,它看起来像

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

对于组ID并且是活动的OR(属于用户并且不活动),它应该在某种程度上表示为:

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

或多或少,它在PHP中看起来像这样

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,
           )
     ),
)
Run Code Online (Sandbox Code Playgroud)