2017-09-17 66 views
0

我通過azure流分析作業將文檔插入MongoDB(作爲CosmosDB中的服務)。 除了以字符串而不是日期時間字段到達數據庫的時間字段之外,一切正常。通過azure流分析將ISODate字段插入到CosmosDB中作爲服務MongoDB

問題是azure流分析只能使用有效的JSON格式,而mongoDB接受的格式稍有不同。

目前,這是中發送的JSON消息:

{ 
    "Time" : "08/16/2017 19:20:00" 
} 

雖然MongoDB中應該得到這樣的:

{ 
    "Time" : ISODate("08/16/2017 19:20:00") 
} 

我無法產生通過流分析的ISODate語法,因爲它不是一個有效的json格式。

任何想法?

回答

0

我找到了this link這可能對你有幫助。您需要將您的日期發送爲1970年以來的毫秒,而不是字符串。所以,你會發送到蒙戈有效的JSON會是這樣的:

{ 
    "Time" : { "$date": 1502904000000 } 
} 

編輯:

user2681670使用下列工作方案:

{ 
    "Time" : { "$date": "2017-09-19T06:59:27.000Z"} 
} 
+0

這不是真的。 「鏈接」的上下文是指[MongoDB擴展JSON語法](https://docs.mongodb.com/manual/reference/mongodb-extended-json/),「可能」在「某些」驅動程序中支持「通過特定的JSON解析方法。然而,大多數語言的一般方法是簡單地將該值解析爲支持的Date類型。所有驅動程序都使用「通用語言」或「常用」日期類型來形成一個BSON日期,該日期將被插入到文檔中。您似乎存在MongoDB存儲「JSON」數據的常見誤解。它不是。 –

+0

我真的不明白你的意見。我知道mongo存儲BSON而不是JSON,但OP需要發送有效的JSON,所以我就這麼說。 – Benjamin

+0

MongoDB不存儲JSON。您可以「將JSON解析爲本地數據結構」並將其「插入」到MongoDB,驅動程序負責將「本地數據」轉換爲BSON。但它不是JSON。 –

相關問題