【发布时间】:2012-07-18 19:17:13
【问题描述】:
都来自数组:
$g = array("Drama", "Crime");
做:
$genre = array("genre" => "Drama", "genre" => "Crime");
我们需要对数据库 mongoDB 进行查询,本质上是这样的:
genre = 'Drama' OR genre = 'Crime'
这就是我尝试的原因:
find(array("genre" => "Drama", "genre" => "Crime"))
由于键相同,不可能创建这样的数组。如何执行所需的查询?
UPD 正确的解决方案:
$g = array("Drama", "Crime");
find(array("genre" => array('$in' => $g)))
【问题讨论】:
-
您到底想完成什么?如果我们了解您正在做的事情的背景,也许我们可以提出更好的建议。
-
数组中不能有 2 个相同的键。它怎么知道你想要哪个?如果你这样做了,第二个元素将覆盖第一个元素。为什么你需要元素有键?
$g怎么了? -
@Rocket,我们需要查询数据库 mongoDB。
-
您是否要查询
movieGenre是Drama还是Crime?我没有使用过 MongoDB,但根据the docs,它可能是这样的:array("genre" => array('$in' => array("Drama", "Crime")))。只是一个猜测。 (注意:$in必须使用单引号,因为它是字符串,而不是变量。) -
@Wiseguy,非常感谢您抽出宝贵时间,抱歉没有仔细考虑文档。