如何在php mongo查询中将unix时间戳转换为mongodb日期
等效的mongo php查询是什么$时间是具有php unixtimestamp的文档的文件如何在php mongo查询中将unix时间戳转换为mongodb日期,php,mongodb,Php,Mongodb,等效的mongo php查询是什么$时间是具有php unixtimestamp的文档的文件 db.collection.aggregate({$project:{$year:{$year:ISODate($time“*1000)}}}}})到目前为止您尝试了什么,您正在使用php Mongo库吗 下面是一个带有时间戳的示例: $collection = $mongoClient->your_collection->your_type; $pipeline = [ [
db.collection.aggregate({$project:{$year:{$year:ISODate($time“*1000)}}}}})
到目前为止您尝试了什么,您正在使用php Mongo库吗
下面是一个带有时间戳的示例:
$collection = $mongoClient->your_collection->your_type;
$pipeline = [
[
'$project' => [
'year' => [
'$year' => new \MongoDate($timestamp)
],
],
],
];
$results = $collection->aggregate($pipeline);
采用这种方法,通过操作符将历元日期以毫秒为单位添加到时间戳中(这是时间字段上1000秒的另一个操作的结果),结果将是自历元起日期毫秒的部分:
db.collection.aggregate([
{
"$project": {
"year": {
"$year": {
"$add": [ new Date(0), { "$multiply": [ "$time", 1000 ] } ]
}
}
}
}
]);
等效的PHP语法如下所示:
$collection->aggregate([
[
"$project" => [
"year" => [
"$year" => [
"$add": [ new MongoDate(0), [ "$multiply": [ "$time", 1000 ] ] ]
]
]
]
]
]);
不能将函数注入聚合管道。只能使用实际操作员。可以传入外部值,但外部方法无法对管道值进行操作。@Kiwi我也尝试了同样的方法,但不幸的是Blakes是对的,我们无法将函数注入聚合管道。另外,$timestamp是mongo文档的关键。