为什么我的客户端更新不起作用?

时间:2016-07-18 07:27:20

标签: meteor mongodb-query insert-update

这是一个令人沮丧的障碍。我需要更新和增加集合内部的数组值。为此,我使用MongoDB语法访问集合,如下所示:

var selectedBargain = Session.get('selectedBargain');

//Confirm that Session.get is successful
console.log("SelectedID is: "+selectedBargain);

buyList.update(selectedBargain, {$inc: {nrOfUnreadMessages: 1} });
buyList.update(selectedBargain, {$set: {messageToggle: 0} });

控制台成功打印出: SelectedID为:nEXHQFEt6kZ9Wzvg3

奇怪的是,更新查询成功运行当我通过控制台运行它时:

buyList.update("nEXHQFEt6kZ9Wzvg3", {$inc: {nrOfUnreadMessages: 1} })

我尝试将代码更改为:

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} });
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} });

......无济于事。

有人可以告诉我为什么它在我的代码中不起作用?我哪里错了?

1 个答案:

答案 0 :(得分:0)

@CodeChimp,@ Kash我非常抱歉。我想到了。 好像我从来没有追溯到最后的代码序列。进一步(在我发布的范围之外)是查询的另一个函数:

buyList.update(ChatSubMessagesId, {$set: {nrOfUnreadMessages: 0} })
buyList.update(ChatSubMessagesId, {$set: {messageToggle:1} } )

结果是它会反转所需的代码:

buyList.update({_id: selectedBargain}, {$inc: {nrOfUnreadMessages: 1} });
buyList.update({_id: selectedBargain}, {$set: {messageToggle: 0} });

我花了这么多时间才意识到这一点。太尴尬了!