2017-10-07 89 views
0

我有一個問題,當我嘗試創建一個新的電影,我得到節點js mongoose不能包含'。'

{ title: 'Dominion', 
    Dominion: 'https://upload.wikimedia.org/wikipedia/en/thumb/1/11/Dominion_-_Title_Card.png/250px-Dominion_-_Title_Card.png' } ] 
Error: key Agents Of S.H.I.E.L.D. must not contain '.' 

反正允許它有一個「」?

我的代碼

Movie.create(movieObj, function(err, _){ 
          console.log(err) 
         }) 
+0

爲什麼你將標題用作關鍵字?鍵名應該是靜態的。 – JohnnyHK

+0

這是一個電影推薦的網站,所以我會找到所有常見的電影,電影x和電影y ect ..然後把他們兩個共同的電影列入1列表,然後得到重複,把重複列表(他們的名稱),然後我將使用重複列表來查找封面。如果你知道更好的辦法,我可以改變它@JohnnyHK –

+0

嗯...我不明白你在描述什麼。你能否更新你的問題來提供一個完整的例子? – JohnnyHK

回答

0

由於MongoDB的restrictions不能使用點符號和按鍵名稱一美元的象徵。 將用戶數據保存爲任何數據庫(SQL或Schema-less)的關鍵字是一個壞主意。因爲在將數據放入表/集合/等之前,您需要做大量準備工作。最主要的原因是索引和進一步閱讀。

如果您真的想將用戶數據保存爲密鑰,我想建議您使用哈希值。我的意思是你可以製作你的「$ uper Agents Of S.H.I.E.L.D.」的MD5哈希值。而不是把這個32b鍵放到你的文檔中並用它來存儲一些值。也許你會想保存電影的原始名稱在關鍵「movie_title」中。我猜,這是一個更好的方法。