【问题标题】:Sending POST data with a mongodb operator使用 mongodb 操作符发送 POST 数据
【发布时间】: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 服务调用中,并且不允许通过更新直接设置/更新文档文件。
  • 我必须允许直接更新,这是我被告知要做的。

标签: json mongodb


【解决方案1】:

尝试将以 $ 开头的字段名也用引号括起来:

{"$addToSet":{"Data":{"$each":[{"ID":"10","RandNum":"45"},{"ID":"11","RandNum":"1"},{"ID":"12","RandNum":"3"}]}} 

【讨论】:

  • 那行得通。现在我收到关于内容长度的错误,我知道如何解决!所以我准备好了。谢谢!
猜你喜欢
  • 2016-06-26
  • 2016-05-31
  • 2016-12-05
  • 2021-05-09
  • 1970-01-01
相关资源
最近更新 更多