【问题标题】:MongoDB Rest API doesn't allow me to search "deeper" using query parametersMongoDB Rest API 不允许我使用查询参数搜索“更深”
【发布时间】:2015-10-09 03:31:54
【问题描述】:

我的 MongoDB 数据库中目前有一些文档包含此模板:

{
    "_id": {
        "$oid": "5616b757e4b0d2d408b39097"
    },
    "username": "admin",
    "hash": "encrypted",
    "salt": "salt",
    "mail": "mail@mail.com",
    "answered": {
        "x": 203,
        "y": 102
    }
}

我想像这样使用 REST api 进行搜索:

https://api.mongolab.com/api/1/databases/[REDACTED]/collections/users?q={"username":"admin"}&f={"answered":1}&apiKey=[已编辑]

这正确地给了我

[ { "answered" : { "x" : 203 , "y" : 102 } } ]

这很好,但我想更深入地搜索“已回答”字段,如下所示:

https://api.mongolab.com/api/1/databases/[REDACTED]/collections/users?q={"username":"admin"}&f={"answered":{x:1}}&apiKey=[已编辑]

但这会出错,我尝试了几种变体,但它们都不起作用,documentation 没有说明它应该如何在 URL 中格式化。

我最终想要的是:

[ { "answered" : { "x" : 203 } } ] 

【问题讨论】:

  • 试试{"answered.x": 1}?

标签: html mongodb rest url


【解决方案1】:

试试{"answered.x": 1}

根据docs

嵌入文档中字段的相等匹配

使用点 通过嵌入文档中的特定字段匹配的符号。平等 嵌入文档中特定字段的匹配项将选择 集合中的文档,其中嵌入的文档包含 具有指定值的指定字段。嵌入文档可以 包含其他字段。

在以下示例中,查询使用点表示法来匹配所有 字段生产者的值是嵌入的文档 包含值为“ABC123”的外地公司的文档,并且可以 包含其他字段:

db.inventory.find( { 'producer.company': 'ABC123' } )

【讨论】:

  • 谢谢,我在里面搜了一下,但似乎搜索的时间不够长,经过测试,它可以工作。
  • 太棒了!如果可以解决您的问题,请接受关闭问题的答案:) (您可能需要等待一分钟,因为它非常快。IDr。)
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多