5
我在使用PHP數組語法的MongoDB查詢時遇到了問題。這是我想要使用的查詢的直接版本。
db.collection.find({
$or: [
{$and : [{X:1}, {X: {$gt: 100}}]},
{$and : [{X:2}, {X: {$lt: 100}}]}
]
});
注意:真正的查詢比較複雜,這只是一個例子。
我無法找到一些在PHP中描述這種查詢的例子。 我想出最好的是這樣的:
$query = array(
'$or' => array(
array(
'$and' => array(
array('X' => 1),
array('X' => array('gt' => 100))
)
),
array(
'$and' => array(
array('X' => 2),
array('X' => array('lt' => 100))
)
),
)
);
$this->db->collection->find($query);
但此查詢不返回任何結果。 顯然我們不能從數組中刪除$and
,因爲我們不能在PHP數組中有重複的鍵。
我不想使用JavaScript表達式,因爲速度很關鍵。
更新:正如亞歷山大阿扎羅夫在評論中指出的,我原來的查詢可以寫成不同的。我用正確使用的$and
查詢更新了這個問題。
究竟是什麼不起作用?你有錯誤消息嗎? – 2012-01-01 18:00:23
查詢執行正常,但返回0個結果。 – 2012-01-01 18:01:00
您可以發佈示例數據轉儲嗎? – 2012-01-01 18:05:24