【问题标题】:How to create an array with the same key?如何创建具有相同键的数组?
【发布时间】: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。
  • 您是否要查询movieGenreDrama 还是Crime?我没有使用过 MongoDB,但根据the docs,它可能是这样的:array("genre" => array('$in' => array("Drama", "Crime")))。只是一个猜测。 (注意:$in 必须使用单引号,因为它是字符串,而不是变量。)
  • @Wiseguy,非常感谢您抽出宝贵时间,抱歉没有仔细考虑文档。

标签: php arrays mongodb key


【解决方案1】:

在数组内部创建一个数组:

$genre = array(
    "genre" => array(
        "Drama",
        "Crime"
    )
);

【讨论】:

  • 我需要在 mongoDB 中创建一个查询。此选项无效!
  • @ArtPip:你说得真好!我的水晶球今天坏了,很抱歉我自己不知道!
  • 很抱歉,没有指定一次。
【解决方案2】:

我对 MongoDB 了解不多(我不得不用 Google 搜索:Docs),但有一个 $in 运算符。你要genere IN ("Drama", "Crime")

我认为这就是你在 PHP/MongoDB 中的做法

find(array("genre" => array('$in' => array("Drama", "Crime"))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多