我有这段代码来更新条目:
function updateList(listTime) {
var firstList = Project.find().fetch()[0].list; // returns a list
var nextElement = (firstList[firstList.length-1] + 50); // value of last + 50
Project.update({name: "List 1"}, {$push: {list: nextElement}});
}
我打电话给:
Meteor.methods({
updateList: updateList,
});
因为我正在使用python ddp客户端并且需要这样。
问题是nextElement并没有真正增加我列表中的序列。想象一下,我的列表是[50,100,150,...],如果我调用updateList,它会变成[50,100,150,150,150,150 ...]等等......它应该变成[50,100,150,200,250,300 ...]。
有谁知道为什么?
答案 0 :(得分:2)
首先制作nextElement +1
而不是+50
。
var nextElement = (firstList[firstList.length-1] + 1);
请注意,listTime将成为列表中的最后一个元素。因此,如果您运行updateList(20)
,则列表将变为[1, 2, 3, 4, 5, 6, 7, 20]
。如果您随后致电updateList(2)
,它将变为[1, 2, 3, 4, 5, 6, 7, 20, 21, 2]
,依此类推。
我不确定listTime应该做什么但是如果你想将last int + 1
添加到列表中:
function updateList() {
var firstList = Project.find().fetch()[0].list;
var nextElement = (firstList[firstList.length-1] + 1);
Project.update({name: "List 1"}, {$push: {list: nextElement}});
}
这将导致:
Project.find().fetch()[0].list
> [1, 2, 3, 4, 5, 6, 7]
updateList()
Project.find().fetch()[0].list
> [1, 2, 3, 4, 5, 6, 7, 8]
updateList()
Project.find().fetch()[0].list
> [1, 2, 3, 4, 5, 6, 7, 8, 9]