首页 文章

Azure CosmosDB MongoDB如何查询:查询资源管理器

提问于
浏览
1

我正在探索Azure CosmosDB,并且无法理解如何查询我的收藏 . 我创建了一个Web应用程序来添加和查询数据,但我想在Azure中搜索,不知道我应该如何构建我的查询 .

目前我查询我的集合运行以返回所有内容 .

SELECT * FROM c

这会返回大量信息 . 以下是数据外观的示例 .

{
    "$t": 3,
    "$v": {
      "searchTerm": {
        "$t": 2,
        "$v": "test"
      },
      "searchDate": {
        "$t": 9,
        "$v": 1501606675858
      },
      "_id": {
        "$t": 7,
        "$v": "Y³\u0013&Ò#\bø\u0005+ú"
      },
      "__v": {
        "$t": 16,
        "$v": 0
      }
    },
    "id": "NTk4MGIzMTMyNmQyMjMwOGY4MDUyYmZh",
    "_rid": "pR8YAPXxJQABAAAAAAAAAA==",
    "_self": "dbs/pR8YAA==/colls/pR8YAPXxJQA=/docs/pR8YAPXxJQABAAAAAAAAAA==/",
    "_etag": "\"020094b9-0000-0000-0000-5980b3130000\"",
    "_attachments": "attachments/",
    "_ts": 1501606672   }

有没有办法只查询某个“searchTerm”(我的CosmosDB中的一个字段) . 我似乎无法掌握语法来过滤我的查询 . 我已经尝试了一些在SQL中似乎有意义的事情,但没有一个能够正常工作 .

谢谢你的帮助 .

2 回答

  • 1

    正如您在评论中所述,您使用的是Mongoose,这是一个用于与Mongo交互的ORM . 如果您使用Mongo API插入数据,则还需要使用Mongo API查询数据,因为它们是为了支持包含所有$符号的文档格式而构建的 .

  • 1

    在Jesse的帮助下,我最终能够使用SQL“Query Explorer”API来查询我的查询 .

    正如他解释的那样,因为我使用的是MongoDb实例,所以我应该使用Mongo Query API,可以通过进入“数据资源管理器” - >选择你的收藏 - >“新的Mongo查询”来访问Azure . 从那里你可以使用类似的东西搜索...

    {searchTerm: "test"}
    

    返回带有值test的所有searchTerms .

    How To Do It With SQL Query Explorer

    我想用SQL Query Explorer进行相同的查询,经过一些试验和错误后,以下语法似乎有效 .

    select *
    from collection
    where collection["$v"].searchTerm["$v"] = "test"
    

    不是最漂亮的解决方案,但它有效 . 只是想提一下,以防其他人试图用SQL Query Explorer查询他们的mongodb .

    我不熟悉这种语法,我能找到的所有文档都没有提到这个独特的案例 .

    谢谢 .

相关问题