2
我對mongoDB非常陌生,並試圖將一個對象插入數據庫。 (哇,比mySQL更有趣...)。我正在使用strongloop的loopback框架和它的mongoDB連接器。使mongoDB用字符串替換單值數組
的對象是xml2js解析我收到的XML消息,解析並插入到蒙戈它看起來像這樣經過:
{
"_id": ObjectID("55c61ee9391da88435c5753f"),
"offerChange": [
{
"foo": [
"bar"
],
"baz": [
"foo"
]
}
]
}
,你可以看到,所有關鍵的值是數組,但他們都包含只有一個值。很明顯,我可以在插入或xml解析之前將它們轉換爲字符串,但這需要循環遍歷所有對象的鍵或首先爲工作人員提供更多工作,這是我想避免的。真實的物體比上面顯示的要大得多。
有沒有辦法告訴mongoDB在文檔創建之前或之後自動將只有一個值的數組轉換爲字符串?
這不是一個明智的想法。就「對象一致性」而言,最好將它們保留爲數組,即使它們只包含單個條目。爲什麼?想想用代碼定義一個對象。什麼「類型」給你給這個領域。 「數組或字符串?」。現在做的有效性檢查沒有太多的意義嗎?雖然MongoDB文檔是無模式的,並且沒有任何東西可以阻止文檔之間的結構,但它不應該(除了明確的「繼承模式」之外)。所以它會被「建議」保持這種狀態。 –
這就是說,如果你的** only **問題是XML轉換器處理你只有**想作爲單一值的東西的相當「古怪」的方式,那麼通過一切手段在你的問題中用你正在使用的特定代碼,而我或其他人會建議對它進行「修復」,以便每次獲得單一值。 –
@BlakesSeven不,實際上我認爲你的第一個評論是非常合理的,我想我會保留它。 – baao