2015-12-04 38 views
0

我用下面的方法任務添加到蒙戈。然而,'等級'一直保存在數據庫中'NaN'。流星MongoDB中保存數爲「男」

addTask: function (data) { 

    var data = data || {}; 

    data.createdAt = new Date(); 
    data.status = data.status || null; 
    data.owner = Meteor.userId(); 
    var userID = Meteor.userId(); 

    // Get the lowest rank for all non-checked tasks 
    minRank = Tasks.find({status: null}, {sort: {rank: 1}}).fetch(); 
    data.rank = minRank.length > 0 ? minRank[0].rank - 1 : 0; 

    Tasks.insert(data); 
} 
我使用的console.log確認data.rank

是數量和服務器捕捉到之前,我已經打印的頁面,該頁面短暫閃爍作爲UI正確的數量上排名客戶端並將其更改爲NaN。

任何想法?

+0

'不確定,1'是'NaN'所以很肯定'minRank [0] .rank'是'undefined'。當你登錄'minRank [0]'和'data'時(在將其插入集合之前),你會得到什麼? – datacarl

+0

@datacarl - 這是令人困惑的部分。日誌顯示這兩個值都是正確的數字。這就是爲什麼我認爲它一定是服務器端代碼和客戶端代碼之間的一些區別。 – jetlej

回答

0

原來Tasks.find()在服務器上返回不同的結果比它在客戶端上。

在服務器上它是任何用戶,那裏的客戶端只返回當前用戶所擁有的結果擁有的任務返回的結果,因爲這一切都必須訪問。

就我而言,在服務器端排名最低的結果沒有排名,所以回來爲NaN的。