2011-10-09 71 views
0

如果我想选择符合两个特定条件的文档,如何格式化查询?现在,我现在有这样的:

$params = array('$all' => array(
       array('parent.id'=>'1'), 
       array('owner_id'=>'8') 
     )); 
$data = $collection->find($params); 

这个查询使我回没有结果...任何想法?

回答

0

OUH ..使用它:

$params = array('$all' => array(
       array('parent'=>array('id'=>'1')), 
       array('owner_id'=>8) 
     )); 
$data = $collection->find($params); 
+0

谢谢先生,非常感谢!这与以下不同:$ params = array('parent.id'=> 1,'owner_id'=> 8); –

+0

MongoDB是JSON数据库。对于_objects_和db的子元素,使用select在对象中。 – TROODON

1

parent.id是整数吗?

也许是:

$params = array('$all' => array(
       array('parent.id'=>1), 
       array('owner_id'=>8) 
     )); 
$data = $collection->find($params); 
+0

没有,他们都是字符串。查询find(array('parent.id'=> 1))和find(array('owner_id'=> 8))单独工作正常,但我需要将它们合并,以便接收所有具有父ID的文档的一个和一个老板身份证8 –

+0

我在其他评论回答 – TROODON

+1

圣洁的废话我是个白痴。正确的方法是:$ params = array('parent.id'=> 1,'owner_id'=> 8); –