当前位置: 首页 > 知识库问答 >
问题:

MongoLab通过CURL/Golang HTTP使用HTTP PUT删除多个集合无效

宫晟
2023-03-14

我试图删除多个文档在我的MongoDb数据库中的集合托管在MongoLab服务通过他们的HTTP接口。这是我在尝试实现它时使用的CURL请求

 curl -H "Content-Type: application/json" -X PUT  "https://api.mongolab.com/api/1/databases/mydb/collections/mycoll?q={\"person\":\"554b3d1ae4b0e2832aeeb6af\"}&apiKey=xxxxxxxxxxxxxxxxx"

我基本上希望从集合中删除所有具有匹配查询的文档。蒙古医生http://docs.mongolab.com/restapi/#view-edit delete document建议“在正文中指定空列表相当于删除与查询匹配的文档。” 。但我如何在PUT请求体中发送空列表?

下面是我用来实现上述PUT请求的Golang代码

client := &http.Client{}
postRequestToBeSentToMongoLab, err := http.NewRequest("PUT","https://api.mongolab.com/api/1/databases/mydb/collections/mycoll?q={\"person\":\"554b3d1ae4b0e2832aeeb6af\"}&apiKey=xxxxxxxxxxxxxxxxx",nil )
postRequestToBeSentToMongoLab.Header.Set("Content-Type", "application/json") //http://stackoverflow.com/questions/24455147/go-lang-how-send-json-string-in-post-request
responseFromMongoLab, err := client.Do(postRequestToBeSentToMongoLab)

在这两种情况下,它都返回null(Golang和CURL的PUT请求的情况)。如何让这个工作,以便它删除所有匹配查询的文档?


共有1个答案

夏和雅
2023-03-14

我想您需要传递一个空json数组作为PUT消息的有效负载。有了卷曲,它会是这样的:

curl -H "Content-Type: application/json" -X PUT -d '[]' "https://api.mongolab.com/api/1/databases/mydb/collections/mycoll?q={\"person\":\"554b3d1ae4b0e2832aeeb6af\"}&apiKey=xxxxxxxxxxxxxxxxx"

在Go代码中,您需要编写如下内容:

client := &http.Client{}
req, err := http.NewRequest(
    "PUT",
    "https://api.mongolab.com/api/1/databases/mydb/collections/mycoll?q={\"person\":\"554b3d1ae4b0e2832aeeb6af\"}&apiKey=xxxxxxxxxxxxxxxxx",
     bytes.NewBuffer("[]")
)
req.Header.Set("Content-Type", "application/json")
reply, err := client.Do(req)
 类似资料:
  • 我有一个\u索引:varnish\u日志和\u类型:varnish 具有两个不同值的字段“server”:“India”和“server”:“usa” 现在我只想删除在美国的记录。 我试过用 $curl-XDELETE'http://localhost:9200/_all/_query?q=server:美国' 响应:未找到uri[]和方法的处理程序[DELETE] 请告诉我哪里错了

  • 问题内容: 我有两个表,tableA和tableB。 tableA具有列:tabAId,col2,col3 (tabAId primaryKey和Identity列。) tableB具有列:tabAId,名称 (tabAId不为空) 我在tableA的hbm文件中创建了Bag,以维护关系。 当我尝试更新 tableA中的 记录时,它将引发异常,因为我在tableA实例中有子项列表。 [NHiber

  • 本文向大家介绍如何使用Java从集合中删除多个文档?,包括了如何使用Java从集合中删除多个文档?的使用技巧和注意事项,需要的朋友参考一下 在Java中,com.mongodb.client.MongoCollection接口提供了方法deleteMany()。使用此方法,您可以一次从集合中删除多个文档,为此,您需要通过指定删除条件的过滤器。 示例 输出结果

  • 在 MongoDB 中,可以使用 drop() 方法来从数据库中删除指定集合,它会从数据库中完全删除一个集合,并且不会留下与已删除集合关联的任何索引。 drop() 方法在使用时不需要带有任何参数,并且在使用参数调用时会产生错误,该方法的语法格式如下: db.collection_name.drop() 其中 collection_name 为要删除的集合名称,方法调用成功会返回 true,否则返

  • 无法从外壳中删除集合, 集合可用并且我的 php 脚本正在访问它的东西(选择|更新) 但当我使用: 它给了我一个错误:

  • 我正在从db检索一个集合,想要删除它。这是密码。 这就是错误所在。 我也试着给所有的列名。