Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor.methods()在使用$push和db.update时出现意外行为_Javascript_Node.js_Mongodb_Meteor - Fatal编程技术网

Javascript Meteor.methods()在使用$push和db.update时出现意外行为

Javascript Meteor.methods()在使用$push和db.update时出现意外行为,javascript,node.js,mongodb,meteor,Javascript,Node.js,Mongodb,Meteor,我有以下代码来更新条目: 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:

我有以下代码来更新条目:

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,
});
因为我使用的是PythonDDP客户机,需要这样做

问题是nextElement并没有真正增加我列表上的序列。假设我的列表是[50100150,…],如果我调用updateList,它会变成[50100150150,…],依此类推。。。它应该变成[50100150200250300…]


有人知道为什么吗?

让我们先把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]

如果你想要+1,为什么你要+50?这是我代码中其他地方的一个错误。对不起,伙计们,谢谢你们的回答,这是个打字错误。忘记第二次更新。“加1”增量只是一个例子。我真正想要的是一个“加5”的增量。我编辑了这篇文章,使其更加连贯。我可以看到数字在增加,但随后又恢复了……嗯,说实话,我不确定。您确定正在获取/更新正确的项目文档吗?或者你的应用程序中有其他代码可以重置你的列表。是的,我确定。这一定是update()或methods()甚至Meteor.call()的一个技巧,我不知道。。