Php MongoDB如果子数组搜索如果不是,则执行此操作

Php MongoDB如果子数组搜索如果不是,则执行此操作,php,mongodb,Php,Mongodb,我有一个电台希望制作一个节目网格,我不想在不同的集合/数据库中输入节目信息和节目播出时间,而是想使用PHP为MongoDB进行数组输入,以存储它,如下所示: array{ "showname"=>"title of show", "pagelink"=>"showtitle" "onairdays"=>array( "monday","tuesday","wednesday","thursday","friday" ),

我有一个电台希望制作一个节目网格,我不想在不同的集合/数据库中输入节目信息和节目播出时间,而是想使用PHP为MongoDB进行数组输入,以存储它,如下所示:

array{
    "showname"=>"title of show", 
    "pagelink"=>"showtitle"  
    "onairdays"=>array(
        "monday","tuesday","wednesday","thursday","friday"
     ), 
     "onairtime"=> "22:00", "endtime"=> "01:00"
)
但是如果一个节目每周只有一天,我希望它看起来像这样

array{
    "showname"=>"title of show",
    "pagelink"=>"showtitle" 
    "onairdays"=>"monday", 
    "onairtime"=> "22:00", 
    "endtime"=> "01:00"
)
PHP查询需要搜索日期和时间,它是通过PHP墨尔本/澳大利亚来实现的,以全文小写形式搜索日期,以24小时格式搜索时间

我试过以下方法

$document = $collection->findOne(array("day"=>$day, "start"=> array('$gte' =>  date('Hi'))));
$document = $collection->findOne(array("day"=>$day, "start"=> array('$gte' => print  date('Hi'))));
但在我做以下操作之前,它不会起作用

$document = $collection->findOne(array("day"=>$day, "start"=> array('$gte' =>  date('Hi'))));
$document = $collection->findOne(array("day"=>$day, "start"=> array('$gte' => print  date('Hi'))));

但这会打印出时间,然后打印出数组。

为了我的钱,我甚至会将单日条目保留为数组,因为如果某个项目的编程更改,那么更改它们会更容易。无论如何,MongoDB将允许您对混合类型进行索引,但将相同类型保留在相同字段上比混合更好。在时间上不是太热,但无论如何,当你穿越一天的边界时,你需要做一些杂耍。但实际上,你真正的问题是什么?是否需要查询来执行此操作?你到底试过什么?我的问题是如何查询时间。我不确定我是否知道如何去一天=>星期一-但我不确定如何查询时间,因为它必须是,例如,一个节目在0700开始,现在是0710。我现在如何找到大于或等于0700,小于结束时间的节目