2011-04-19 87 views
1

我將express.js和connect-mongo用作會話存儲。當我在mongo中檢查會話集合時,每個數據集中只有_id屬性是會話屬性。會話屬性的值是一個字符串。有沒有辦法將會話數據存儲爲BSON?使用MongoDB將會話保存爲BSON而非node.js中的字符串

+0

[沒有這樣的事情作爲「JSON對象」。](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/) – 2011-04-19 23:47:19

+1

哇, 「JSON對象」已經真正起飛了。它可能會成爲像XMLHttpRequest這樣的錯誤詞之一,它與XML無關。 – Anurag 2011-04-19 23:52:31

+0

@Matt爲什麼不是這個JSON?由於MongoDB的數據存儲是爲JSON創建的,因此我無法看到與文章的連接,因此node.js中使用的對象不應該字符串化。其實,這正是我的問題。 – Thomas 2011-04-19 23:58:24

回答

0

也許我不直接理解你的問題,但MongoDB已經存儲了一切使用BSON。因此,如果您將Session集合保存起來,它將被轉換爲JSON字符串。

參考:http://www.mongodb.org/display/DOCS/Inserting

編輯:

也看看這個>Mongo JSON document -> JSON -> BSON

這可能會在特定情況下幫助。

+0

我認爲這是一個node.js特定的問題,因爲我認爲mongodb連接會話處理程序已經可以像這樣管理它。 – Thomas 2011-04-20 20:40:36

0

這就是這個特定的中間件寫入工作的方式(儘管誰知道它爲什麼這樣做)。

它會將會話對象轉換成json字符串,當它將其保存到mongodb時,並在再次讀取時將其轉換回對象。

如果您希望會話對象作爲mongodb中的同一對象存儲,我建議切換到替代connect-mongodb中間件。 connect-mongodb的連接與connect-mongo有點不同,但是一旦你建立了連接,其餘的api都是一樣的,所以現有的代碼應該可以正常工作。

相關問題