最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MongoDB聚合運算符$dateFromString詳解

 更新時間:2024年03月07日 15:18:15   作者:原子星  
$dateFromString聚合運算符將日期時間字符串轉(zhuǎn)換為日期對象,本文給大家介紹MongoDB聚合運算符$dateFromString的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧

$dateFromString聚合運算符將日期時間字符串轉(zhuǎn)換為日期對象。

語法

{ $dateFromString: {
     dateString: <dateStringExpression>,
     format: <formatStringExpression>,
     timezone: <tzExpression>,
     onError: <onErrorExpression>,
     onNull: <onNullExpression>
} }

參數(shù)字段說明:

字段必須說明
dateString如果沒有用isoWeekYear則必須日歷年度,可以是任何能解析為整數(shù)的表達式,值域為:1~9999,如果超出范圍將報錯。從4.4以后最小值為1,再之前的版本最小值是0
format若year沒有用則必須ISO的周日期年,可以是任何能解析為整數(shù)的表達式,值域為:1~9999,如果超出將報錯。從4.4以后最小值為1,再之前的版本最小值是0
timezone可選執(zhí)行操作的時區(qū),<timezone>可以是任何能被解析為:Olson時區(qū)標識符或UTC偏移量
onError可選在解析dateString時如果出錯,則輸出onError表達式的結(jié)果,結(jié)果值可以是任意類型
onNull可選如果dateStringnull或不存在,則輸出onNull表達式的結(jié)果,可以是任意類型

使用

使用例子對規(guī)則進行說明

例1:

{ $dateFromString: {
    dateString: "2017-02-08T12:10:40.787"
} }

結(jié)果:ISODate("2017-02-08T12:10:40.787Z")

例2:

{ $dateFromString: {
     dateString: "2017-02-08T12:10:40.787",
     timezone: "America/New_York"
} }

結(jié)果:ISODate("2017-02-08T12:10:40.787Z")

例3:

{ $dateFromString: {
     dateString: "2017-02-08"
} }

結(jié)果:ISODate("2017-02-08T00:00:00Z")

例4:

{ $dateFromString: {
     dateString: "oct 20 2020"
} }

結(jié)果:ISODate("2020-10-20T00:00:00.000Z")

例5:

{ $dateFromString: {
     dateString: "06-15-2018",
     format: "%m-%d-%Y"
} }

結(jié)果:ISODate("2018-06-15T00:00:00Z")

例6:

{ $dateFromString: {
     dateString: "15-06-2018",
     format: "%d-%m-%Y"
} }

結(jié)果:ISODate("2018-06-15T00:00:00Z")

{ $dateFromString: {
     dateString: "WED jan 31 12:05:28 +03:30 1996"
} }

結(jié)果:ISODate("1996-01-31T08:35:28.000Z")

格式指示符

指示符描述可能的值
%b月份縮寫(3個字符)jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec
%B完整月份january-december
%d一個月內(nèi)的第幾天(2個數(shù)字,0填充)01-31
%GISO8601格式 年0000-9999
%H小時(2個數(shù)字,0填充,24小時時鐘)00-23
%j一年內(nèi)的第幾天(3個數(shù)字,0填充)001-366
%L毫秒(3個數(shù)字,0填充)000=999
%m月(2個數(shù)字,0填充)01-12
%M分鐘(2個數(shù)字,0填充)00-59
%S秒(2個數(shù)字,0填充)00-60
%uISO8601格式的一周內(nèi)的第幾天1-7
%U一年內(nèi)的第幾周(2個數(shù)字,0填充)00-53
%VISO8601格式的一年內(nèi)的第幾周1-53
%w一周內(nèi)的第幾天(整數(shù),0-Sunday,6-Saturday)0-6
%Y年(4個數(shù)字,0填充)0000-9999
%z時區(qū)與UTC的偏移量+/-[hh][mm]
%Z從 UTC 開始的分鐘偏移量,用數(shù)字表示。例如,如果時區(qū)偏移(+/-[hhmm])為 +0445,則分鐘偏移為+285。+/-mmm
%%百分比字符作為字面值%

舉例

日期轉(zhuǎn)換

集合logmessages包含下面的數(shù)據(jù):

{ _id: 1, date: "2017-02-08T12:10:40.787", timezone: "America/New_York", message:  "Step 1: Started" },
{ _id: 2, date: "2017-02-08", timezone: "-05:00", message:  "Step 1: Ended" },
{ _id: 3, message:  " Step 1: Ended " },
{ _id: 4, date: "2017-02-09", timezone: "Europe/London", message: "Step 2: Started"},
{ _id: 5, date: "2017-02-09T03:35:02.055", timezone: "+0530", message: "Step 2: In Progress"}

下面的聚合使用$dateFromString將日期值轉(zhuǎn)換為日期對象:

db.logmessages.aggregate( [ {
   $project: {
      date: {
         $dateFromString: {
            dateString: '$date',
            timezone: 'America/New_York'
         }
      }
   }
} ] )

上述匯總返回以下文檔,并將每個日期字段轉(zhuǎn)換為東部時區(qū):

{ "_id" : 1, "date" : ISODate("2017-02-08T17:10:40.787Z") }
{ "_id" : 2, "date" : ISODate("2017-02-08T05:00:00Z") }
{ "_id" : 3, "date" : null }
{ "_id" : 4, "date" : ISODate("2017-02-09T05:00:00Z") }
{ "_id" : 5, "date" : ISODate("2017-02-09T08:35:02.055Z") }

也可以通過文檔字段提供時區(qū)參數(shù),而不是硬編碼參數(shù)。例如:

db.logmessages.aggregate( [ {
   $project: {
      date: {
         $dateFromString: {
            dateString: '$date',
            timezone: '$timezone'
         }
      }
   }
} ] )

上述匯總返回以下文檔,并將每個date字段轉(zhuǎn)換為各自的 UTC 表示形式。

{ "_id" : 1, "date" : ISODate("2017-02-08T17:10:40.787Z") }
{ "_id" : 2, "date" : ISODate("2017-02-08T05:00:00Z") }
{ "_id" : 3, "date" : null }
{ "_id" : 4, "date" : ISODate("2017-02-09T00:00:00Z") }
{ "_id" : 5, "date" : ISODate("2017-02-08T22:05:02.055Z") }

錯誤處理onError

如果文檔集中包含不可解析日期字符串的文檔,則$dateFromString會出錯,除非給參數(shù)onError提供一個聚合表達式。

例如,給定一個包含以下文檔的日期集合:

{ "_id" : 1, "date" : "2017-02-08T12:10:40.787", timezone: "America/New_York" },
{ "_id" : 2, "date" : "20177-02-09T03:35:02.055", timezone: "America/New_York" }

可以使用onError參數(shù)以原始字符串形式返回無效日期:

db.dates.aggregate( [ {
   $project: {
      date: {
         $dateFromString: {
            dateString: '$date',
            timezone: '$timezone',
            onError: '$date'
         }
      }
   }
} ] )

返回的文檔如下:

{ "_id" : 1, "date" : ISODate("2017-02-08T17:10:40.787Z") }
{ "_id" : 2, "date" : "20177-02-09T03:35:02.055" }

空值的粗粒 onNull

如果集合文檔包含空日期字符串,$dateFromString返回空,除非給onNull指定一個聚合表達式。

例如,集合dates有以下文檔:

{ "_id" : 1, "date" : "2017-02-08T12:10:40.787", timezone: "America/New_York" },
{ "_id" : 2, "date" : null, timezone: "America/New_York" }

可以使用onNUll參數(shù)讓$dateFromString返回代表unix紀元的日期,而不是空值:

db.dates.aggregate( [ {
   $project: {
      date: {
         $dateFromString: {
            dateString: '$date',
            timezone: '$timezone',
            onNull: new Date(0)
         }
      }
   }
} ] )

返回下面的結(jié)果:

{ "_id" : 1, "date" : ISODate("2017-02-08T17:10:40.787Z") }
{ "_id" : 2, "date" : ISODate("1970-01-01T00:00:00Z") }

到此這篇關(guān)于MongoDB聚合運算符:$dateFromString的文章就介紹到這了,更多相關(guān)MongoDB $dateFromString內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用golang驅(qū)動操作MongoDB數(shù)據(jù)庫的步驟

    利用golang驅(qū)動操作MongoDB數(shù)據(jù)庫的步驟

    這篇文章主要給大家介紹了關(guān)于如何利用golang驅(qū)動操作MongoDB數(shù)據(jù)庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MongoDB中4種日志的詳細介紹

    MongoDB中4種日志的詳細介紹

    這篇文章主要給大家介紹了關(guān)于MongoDB中4種日志的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MongoDB具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Centos系統(tǒng)搭建MongoDB數(shù)據(jù)庫

    Centos系統(tǒng)搭建MongoDB數(shù)據(jù)庫

    這篇文章介紹了Centos系統(tǒng)搭建MongoDB數(shù)據(jù)庫的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs)

    這篇文章主要介紹了mongoDB 多重數(shù)組查詢(AngularJS綁定顯示 nodejs),需要的朋友可以參考下
    2017-06-06
  • MongoDB備份和還原的操作指南

    MongoDB備份和還原的操作指南

    MongoDB備份和還原是指將MongoDB數(shù)據(jù)庫中的數(shù)據(jù)和集合備份到另一個存儲位置,并在需要的時候恢復(fù)這些備份的過程,備份和還原MongoDB數(shù)據(jù)庫非常重要,本文給大家介紹了MongoDB備份和還原的操作指南,需要的朋友可以參考下
    2024-05-05
  • 詳解mongodb搭建Replica Set的方法

    詳解mongodb搭建Replica Set的方法

    這篇文章主要介紹了mongodb搭建Replica Set的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • MongoDB數(shù)據(jù)去重與保存最新數(shù)據(jù)操作指南

    MongoDB數(shù)據(jù)去重與保存最新數(shù)據(jù)操作指南

    在 MongoDB 數(shù)據(jù)庫中,我們經(jīng)常需要進行數(shù)據(jù)去重并保留最新的數(shù)據(jù),本文將介紹如何使用 MongoDB 聚合操作完成這一任務(wù),并將結(jié)果保存到新的集合或者覆蓋原有的集合,感興趣的小伙伴跟著小編一起來看看吧
    2024-01-01
  • MongoDB安全及身份認證(實例講解)

    MongoDB安全及身份認證(實例講解)

    下面小編就為大家?guī)硪黄狹ongoDB安全及身份認證(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • MongoDB中javascript腳本編程簡介和入門實例

    MongoDB中javascript腳本編程簡介和入門實例

    作為一個數(shù)據(jù)庫,MongoDB有一個很大的優(yōu)勢——它使用js管理數(shù)據(jù)庫,所以也能夠使用js腳本進行復(fù)雜的管理——這種方法非常靈活
    2014-04-04
  • MongoDB 聚合查詢詳解

    MongoDB 聚合查詢詳解

    這篇文章主要介紹了MongoDB 聚合查詢詳解的相關(guān)資料,需要的朋友可以參考下
    2022-12-12

最新評論

天气| 巩留县| 安顺市| 虎林市| 虞城县| 灌南县| 静海县| 利川市| 古田县| 缙云县| 义乌市| 怀来县| 陇川县| 芦山县| 宝丰县| 桓仁| 东辽县| 陇南市| 枣强县| 晋中市| 治县。| 平南县| 申扎县| 甘肃省| 甘德县| 荆门市| 中山市| 平原县| 苏尼特右旗| 苍梧县| 通海县| 铜陵市| 嵩明县| 夹江县| 中卫市| 榆林市| 阿拉善左旗| 疏附县| 兰州市| 五指山市| 新巴尔虎左旗|