【发布时间】: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