【发布时间】:2014-03-31 13:53:19
【问题描述】:
我正在尝试向这个 nodejs 应用程序发送一个 JSON 块,该应用程序将该 json 插入到 mongodb 中。 nodejs 应用程序可以在没有 mongodb 运算符的情况下进行插入和更新,但问题是我需要使用 $addToSet 运算符来更新集合中的值数组。
这就是我的 JSON 数据的样子,这就是我要发布到网站的内容。它使用 $addToSet & $each:
{$addToSet:{"Data":{$each:[{"ID":"10","RandNum":"45"},{"ID":"11","RandNum":"1"},{"ID":"12","RandNum":"3"}]}}
我也试过用这个:
"{$addToSet: {\"Data\": {$each: [{\"ID\":\"10\",\"RandNum\":\"45\"},{\"ID\":\"11\",\"RandNum\":\"1\"},{\"ID\":\"12\",\"RandNum\":\"45\"}]}}"
现在,我只是尝试使用 Fiddler 发布它。这是我得到的错误:
226 Error: invalid json at Object.exports.error
(/home/dsi-user/WVS-Dev/node_modules/express/node_modules/connect/lib/utils.js:63:13) at
/home/dsi-user/WVS-Dev/node_modules/express/node_modules/connect/lib/middleware/json.js:73:69 at
IncomingMessage.onEnd (/home/dsi-user/WVS-Dev/node_modules/express/node_modules/connect/node_modules/raw-body/index.js:109:7) 在 IncomingMessage.g (events.js:180:16) 在 IncomingMessage.EventEmitter.emit (events.js:92:17) 在 _stream_readable.js:920:16 at process._tickCallback (node.js:415:13) 0
由于某种原因,它似乎不喜欢更新我收藏中的文档所需的 $。我想知道我是否遗漏了什么或没有正确编码。我不确定。
【问题讨论】:
-
除非您不关心数据模型可以完全改变,否则我建议您将这种类型的逻辑包装到 Web 服务调用中,并且不允许通过更新直接设置/更新文档文件。
-
我必须允许直接更新,这是我被告知要做的。