【问题标题】:Why isnt my update from client working?为什么我的客户端更新不起作用?
【发布时间】:2016-07-18 07:27:19
【问题描述】:

这是一个令人沮丧的障碍。我需要更新和增加集合内的数组的值。为此,我使用 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 is: nEXHQFEt6kZ9Wzvg3

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

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

我已尝试将代码更改为:

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

...无济于事。

谁能告诉我为什么它在我的代码中不起作用?我哪里错了?

【问题讨论】:

  • 你一定已经检查过了。但无论如何都要问。您确定在代码和控制台中运行时连接到同一个数据库吗?
  • @KaSh 好吧,我只有一个购买清单。而且我只能通过控制台进行更新。
  • 当你说它在控制台中运行成功时,我假设是在 Chrome/Firefox 中? $set 是否工作,只有 $inc 失败,或者它们都失败了?当您运行代码与通过 JS 控制台运行时,您在 Chrome 上的 Dev Tools/Network 的 WS 部分看到了什么?您应该会看到 DDP 更新结束。

标签: meteor mongodb-query insert-update


【解决方案1】:

@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} });

我花了好几个小时才意识到。好尴尬!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 2020-12-21
    • 2011-03-15
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多