mongodb and or combo与此类似,除了我使用php并获取[MongoCursorException] $或数组必须包含对象。
另请阅读此http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or
如何嵌套" AND"在" OR"内在MongoDB中通过PHP?这是我的条件参数(通过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,
),
),
)
需要组ID中的帖子列表并且是活动的或(属于用户且不活动)。
在SQL中非常容易,但无论我通过PHP查询在MongoDB中尝试哪种变化,都会得到$或错误。这可能吗?是$和必需品?
答案 0 :(得分:5)
您的查询不正确。在JSON中,它看起来像
{
"group_id" : "4eec13b5-aeb4-48ee-9619-449125af0e18",
"$or" : [
[ { "active" : 0, "user_id" : "4eea7b76-5d34-4036-8344-120c0aaa1bdc" } ],
[ null, { "active" : 1 } ]
]
}
对于组ID AND是活动的OR(属于用户并且不活动),它应该表示为:
{
"group_id" : "4eec13b5-aeb4-48ee-9619-449125af0e18",
"$or" : [
{ "active" : 0, "user_id" : "4eea7b76-5d34-4036-8344-120c0aaa1bdc" },
{ "active" : 1 }
]
}
或多或少,它在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,
)
),
)