各位大神好,這邊想請問一下sql語法上的問題,以下是我資料庫目前的資料型態:
我想將其中time的欄位改成ISOdate的形式如下圖中的updateAT欄位:
而以下是我的code部分:
她顯示成功執行但是改動了0項資料,請問要如何處理?
你可以試試看 $dateFromString
這邊可以正確修改了,但想再問一下要如何儲存修改過後的結果?
修改完後如下圖
,但回頭看db時卻仍不變:
$project 只有呈現沒有修改
範例
db.time.test.updateOne(
{ },
[
{
$set:
{ 'newField':
{ $dateFromString: { dateString: '$stringTime'} }
}
}
] )
自己改一下你的欄位和條件就好,我沒覆蓋原本欄位是方便你看改變的過程。
完整記錄:
film> db.time.test.find()
[
{
_id: ObjectId("613462de924cfb987f3ce223"),
stringTime: '2020-05-13 10:16:00',
newField: ISODate("2020-05-13T10:16:00.000Z")
}
]
film> db.time.test.updateOne(
... { },
... [
... {
..... $set:
..... { 'newField':
....... { $dateFromString: { dateString: '$stringTime'} }
....... }
..... }
... ] )
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
film> db.time.test.find()
[
{
_id: ObjectId("61346311924cfb987f3ce224"),
stringTime: '2020-05-13 10:16:00',
newField: ISODate("2020-05-13T10:16:00.000Z")
}
]