我正在探索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 回答
正如您在评论中所述,您使用的是Mongoose,这是一个用于与Mongo交互的ORM . 如果您使用Mongo API插入数据,则还需要使用Mongo API查询数据,因为它们是为了支持包含所有$符号的文档格式而构建的 .
在Jesse的帮助下,我最终能够使用SQL“Query Explorer”API来查询我的查询 .
正如他解释的那样,因为我使用的是MongoDb实例,所以我应该使用Mongo Query API,可以通过进入“数据资源管理器” - >选择你的收藏 - >“新的Mongo查询”来访问Azure . 从那里你可以使用类似的东西搜索...
返回带有值test的所有searchTerms .
How To Do It With SQL Query Explorer
我想用SQL Query Explorer进行相同的查询,经过一些试验和错误后,以下语法似乎有效 .
不是最漂亮的解决方案,但它有效 . 只是想提一下,以防其他人试图用SQL Query Explorer查询他们的mongodb .
我不熟悉这种语法,我能找到的所有文档都没有提到这个独特的案例 .
谢谢 .