gpt4 book ai didi

php - Doctrine 删除最旧的条目

转载 作者:可可西里 更新时间:2023-11-01 09:57:15 24 4
gpt4 key购买 nike

我有一个包含 3 个字段的 MongoDb 文档 messageauthorsendAt,我创建了一个查询生成器来计算所有 DB 条目此文档,如果条目超过 20 个,我将尝试删除最旧的条目。

sendAt 是发送消息时的当前日期时间 ("sendAt": ISODate("2016-01-21T08:53:00Z"))

我有一个未完成的查询构建器

public function deleteOldestMessage()
{
return $this->createQueryBuilder()
->delete('m')
->from('Messages', 'm')
->where('m.sendAt = ')
->execute();
}

但我真的不知道我应该在 where 条件上添加什么。我也许应该命令 DESC sendAt 字段并删除列表中的第一个?

我如何告诉查询构建器删除最早的一个?

谢谢,

最佳答案

你需要先选择最旧的然后你可以像这样删除它:

    $qb->select('m')
->from('Messages', 'm')
->orderBy('m.sendAt', 'DESC');
$messages = $qb->getResult();

他们

    if(count($messages) >= 20){
//get the first element of array which is the oldest one
$lastMessage = current($messages);
$em->remove($lastMessage);
}

关于php - Doctrine 删除最旧的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34920420/

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