Meteor mongodb将数字保存为'NaN'

时间:2015-12-04 00:08:41

标签: mongodb meteor

我正在使用以下方法向mongo添加任务。然而,'rank'继续作为'NaN'保存在db中。

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。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

结果发现Tasks.find()在服务器上返回的结果与在客户端上返回的结果不同。

在服务器上,它是任何用户拥有的任务的返回结果,其中客户端仅返回当前用户拥有的结果,因为它具有访问权限。

在我的情况下,服务器端排名最低的结果没有排名,所以它以NaN的形式返回。