【问题标题】:how to insert data on mongo db through restheart api如何通过restheart api在mongodb中插入数据
【发布时间】:2016-03-21 12:21:29
【问题描述】:

我正在使用 mongo DB 3.0 版本和 restheart API 2.0 版本。现在我正在尝试通过 postman chrome 界面检查我的查询(URI)。我在 mongo DB 中创建了一个数据库(测试)表(mycol)和两个文档,当我过滤该数据时它显示正确但是当我尝试通过邮递员或 HAL 浏览器将数据插入 mongodb 时它显示错误,请各位大神指导我的语法格式。

Query for filter data, it gives correct result

Query for insert a document, it shows some error

我还需要知道 的 URI 格式:///[?doc_type=TYPE] 这是什么意思 请用一些例子详细解释一下

【问题讨论】:

    标签: mongodb restheart


    【解决方案1】:

    要创建文档,您需要发布集合 POST /test/mycol 或 PUT 文档 PUT /test/mycol/<docid>

    <docid> 代表文档 ID。查询参数docid_type 是可选的,允许在 URL 中指定 <docid> 的类型,更多信息请参见文档 Resource URI 部分。

    例如,如果您想创建以下文档{ "_id": “mydoc", “message”: “hello” },您可以这样做

    PUT /test/mycol/mydoc { “message”: “hello”}

    或

    POST /test/mycol { "_id": “mydoc", “message”: “hello” }

    在后一种情况下,如果您不指定 _id,它将自动生成为 ObjectId。

    请注意,您必须将Content-Type 请求标头指定为application/json 或application/hal+json。

    例如,使用 Postman 将正文设置为 raw 并从右侧的下拉列表中选择 JSON (application/json)。您会注意到这会将 Content-Type 标头添加到标头中。

    【讨论】:

    • 感谢您的回复先生,但是当我尝试按照您所说的插入数据时,我仍然遇到一个问题,它将整个查询作为_id名称并且数据没有插入。我的查询127.0.0.1:8080/test/mycol/mydoc123 {"name":"rsk"} 我从 mongodb 得到的结果是: 但数据没有插入
    【解决方案2】:

    我遇到了同样的问题。 问题是我使用了以“_”开头的字段名 即字段名称,如“_type”、“_name”。 尽量避免使用此类名称。

    【讨论】:

      【解决方案3】:

      我和你有同样的问题。对于插入,您应该像这样编写对象:

         {
          "code": 20,
          "name": "s",
          "family": "x"
         }
      

      并设置 POST 你的方法,如果文档存在则更新,否则将被创建。

      请查看此链接以获取更多信息 https://community.boomi.com/s/article/howtointegratewithmongodbusingopensourcerestheartlibrary#jive_content_id_Scenario_1__InsertUpdate_an_Employee_record_in_Employees_collection_using_POST

      【讨论】:

        猜你喜欢
        • 2021-09-02
        • 2018-12-17
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 2017-01-17
        • 1970-01-01
        • 1970-01-01
        • 2019-03-04
        相关资源
        最近更新 更多