gpt4 book ai didi

php - 使用 PHP 仅从 MongoDate 查询 "sec"字段

转载 作者:可可西里 更新时间:2023-11-01 10:50:31 27 4
gpt4 key购买 nike

我有一个字符串转换为 MongoDate 使用

$dateAdded = new MongoDate(strtotime("$time"));
echo "date ".$dateAdded;

所以我的 $dateAdded 现在看起来像 0.00000000 1482505458。(这里的1482505458是秒数,0.00000000是微秒。)

现在,我的收藏中有一个文档,其中 sec = 1482442458 和 usec = 622000。

 Array ( [_id] => Array ( [addedtime] => MongoDate Object ( [sec] => 1482505458 [usec] => 622000 ) )

如何编写只匹配秒字段的查询?

更新:

她的是我一直在尝试的:

$date = "2016-12-23 15:04:18";
$m = new MongoClient("mongodb://172.29.0.186:27017");
$dateAdded = new MongoDate(strtotime("+330 minutes",strtotime("$time")));
echo " date ".$dateAdded;

$key = array('$and' => array(array('_id.createdby' => "$user"), array('_id.addedtime' => "$dateAdded")));
$collectionCount->find($key);

它应该匹配:

 Array ( [_id.createdby] => 10006161 ) Array ( [_id] => Array ( [addedtime] => MongoDate Object ( [sec] => 1482505458 [usec] => 622000 ) [empname] => Praveen Valecha [createdby] => 10006161 ) )

最佳答案

这不是一个完美的解决方案,但它对我有用,并且应该适用于大多数想要避免搜索精确到微秒的时间的人。

这是我根据问题中提出的代码修改的部分代码:

我创建了一个时间比我正在搜索的时间长一分钟的变量。

$dateAdded = new MongoDate(strtotime("+330 minutes",strtotime("$time")));
echo " dateAdded ".$dateAdded;
$dateFinal = new MongoDate(strtotime("+331 minutes",strtotime("$time")));
echo " dateFinal ".$dateFinal;

然后我使用 $gte 和 $lt 来查询@Sammaye 建议的日期范围内的文档。

$key = array('_id.addedtime' =>  array('$gte' => $dateAdded, '$lt' => $dateFinal));

注意:您还可以将 +1 秒 添加到 $dateFinal 来代替添加额外的一分钟以获得更准确的结果。

关于php - 使用 PHP 仅从 MongoDate 查询 "sec"字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41375557/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com