在 MongoDB 中将字符串转换为日期?
mongodbdatabasebig data analytics更新于 2026/1/27 5:22:17
要在 MongoDB 中将字符串转换为日期,请使用以下语法:
db.yourCollectionName.aggregate(
[
{
$project:
{
anyVariableName:
{
$dateFromString:
{
dateString: '$yourFieldName’
}
}
}
}
]
);
为了理解上述语法,让我们创建一个包含一些文档的集合。创建包含文档的集合的查询如下:
> db.ConvertStringToDateDemo.insertOne({"ArrivalDate":"20-10-2019"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ef3596fd07954a489069f")
}
> db.ConvertStringToDateDemo.insertOne({"ArrivalDate":"21-02-2019"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ef3616fd07954a48906a0")
}
> db.ConvertStringToDateDemo.insertOne({"ArrivalDate":"10-12-2018"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ef36d6fd07954a48906a1")
}
> db.ConvertStringToDateDemo.insertOne({"ArrivalDate":"31-01-2017"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ef37b6fd07954a48906a2")
}
使用 find() 方法显示集合中的所有文档。查询如下:
> db.ConvertStringToDateDemo.find().pretty();
输出结果如下:
{
"_id" : ObjectId("5c6ef3596fd07954a489069f"),
"ArrivalDate" : "20-10-2019"
}
{
"_id" : ObjectId("5c6ef3616fd07954a48906a0"),
"ArrivalDate" : "21-02-2019"
}
{
"_id" : ObjectId("5c6ef36d6fd07954a48906a1"),
"ArrivalDate" : "10-12-2018"
}
{
"_id" : ObjectId("5c6ef37b6fd07954a48906a2"),
"ArrivalDate" : "31-01-2017"
}
这是将字符串转换为日期的查询:
> db.ConvertStringToDateDemo.aggregate( [ {
... $project: {
... StringToDate: {
... $dateFromString: {
... dateString: '$ArrivalDate'
... }
... }
... }
... } ] ).pretty();
输出结果如下:
{
"_id" : ObjectId("5c6ef3596fd07954a489069f"),
"StringToDate" : ISODate("2019-10-20T00:00:00Z")
}
{
"_id" : ObjectId("5c6ef3616fd07954a48906a0"),
"StringToDate" : ISODate("2019-02-21T00:00:00Z")
}
{
"_id" : ObjectId("5c6ef36d6fd07954a48906a1"),
"StringToDate" : ISODate("2018-12-10T00:00:00Z")
}
{
"_id" : ObjectId("5c6ef37b6fd07954a48906a2"),
"StringToDate" : ISODate("2017-01-31T00:00:00Z")
}

