2016-03-07 88 views
0

我試圖通過將usersId保存到登錄用戶帳戶來創建一個最喜歡的按鈕。概念是,如果有userId(用戶是最喜歡的),否則用戶不是最喜歡的。問題是我收到錯誤update failed: Error: Favorites must be an array,我不確定這是什麼意思。SimpleSchema更新錯誤

路徑:schema.js

Schema.UserProfile = new SimpleSchema({ 
    "favorites.$.favorite": { 
     type: Object 
    } 
}); 

路徑:studentlist.js

Template.student.events({ 
'click .favourite':function(event,template) { 
     console.log('click'); 
     var candidateId = this._id; 

     Meteor.users.update({_id: Meteor.userId() }, { $set: { "profile.favorites": candidateId }}); 
    } 
}); 
+1

請參閱[「應該在其標題中包含」標籤?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –

+0

沒問題安德烈亞斯,我會把它放在船上。仍然在學習正確的做事方式。 – bp123

+0

您是否使用'aldeed:collection2'將模式附加到集合?你爲什麼要設置'favorites'爲一個ID,通常是一個字符串,當你指定它應該是一個具有'收藏夾$'的數組?請[編輯]您的問題以提供[mcve]。 –

回答

0

你有兩種基本的錯誤。

由於錯誤,您必須將Favorites屬性定義爲數組。並在代碼中嘗試使用$set命令進行更新。

當你在MongoDB中插入一個項目到一個數組時,你必須使用$push運算符。

以及修復此問題後面臨的第二個問題將是不正確的數據類型插入。因爲您已將favorite定義爲對象,但嘗試插入單純的id。