Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure 查询SDB非结构化JSON_Azure_Azure Sql Database_Azure Cosmosdb_Azure Cosmosdb Sqlapi - Fatal编程技术网

Azure 查询SDB非结构化JSON

Azure 查询SDB非结构化JSON,azure,azure-sql-database,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure,Azure Sql Database,Azure Cosmosdb,Azure Cosmosdb Sqlapi,CosmosDB如何查询动态JSON中的属性值 该应用程序允许将JSON存储为对象的一组自定义属性。它们被序列化并存储在CosmosDb中。例如,这里有两个条目: { "id": "ade9f2d6-fff6-4993-8473-a2af40f071f4", ... "Properties": { "fn": "Ernest", "ln": "Hemingway", "a_book": "The Old Man and th

CosmosDB如何查询动态JSON中的属性值

该应用程序允许将JSON存储为对象的一组自定义属性。它们被序列化并存储在CosmosDb中。例如,这里有两个条目:

{
    "id": "ade9f2d6-fff6-4993-8473-a2af40f071f4",
    ...
    "Properties": {
        "fn": "Ernest",
        "ln": "Hemingway",
        "a_book": "The Old Man and the Sea"
    },
    ...
}


如何构造查询以便在属性值中搜索?

以下两种语法都可以使用

SELECT * FROM c where c.Properties["First Name"] = 'Salvador'

SELECT * FROM c where c.Properties.fn = 'Ernest'
我在找一个不涉及名字的东西 子属性,如从c中选择*,其中 这里的一些函数性质为“Ernest”

也许我理解了你的想法,你想通过属性的值而不是名称来过滤文档。如果是这样,您可以在cosmos db中使用

样本自定义项:

示例查询:

输出:

这里仅作总结,Ovi的udf功能如下:

function QueryProperties (Properties, filedValue) {     
    for (var k in Properties) { 
        if (Properties[k] && Properties[k].toString().toUpperCase().includes(filedValue.toString().toUpperCase())) 
            return true;    
    return false; 
}

你说的是C LINQ查询还是SQL查询?什么都可以:但我想SQL最好,因为更多的人可以使用它。@Ovi嗨,我的答案对你有帮助吗?@JayGong-确实有帮助。我最后稍微修改了一下。只是作为评论发布到你的网站上answer@Ovi谢谢你的修改。我已经在回答中总结过了。这并不能完全解决问题,尼克。我在找一些不涉及子属性名称的东西,比如从c中选择*其中有些函数是c.Properties,'Ernest'@Ovi,在你的问题中不清楚。Jay的UDF将解决这个问题。谢谢,我最后对它做了一些修改,但这个想法很完美:函数QueryProperties属性,filedValue{for vark in Properties{if Properties[k]&&Properties[k]。toString.toUpperCase.includeFiledValue.toString.toUpperCase return true;}return false;}
function query(Properties,filedValue){
    for(var k in Properties){  
        if(Properties[k] == filedValue)
            return true;  
    }
    return false;
}
SELECT  c.id FROM c where udf.query(c.Properties,'Ernest')
function QueryProperties (Properties, filedValue) {     
    for (var k in Properties) { 
        if (Properties[k] && Properties[k].toString().toUpperCase().includes(filedValue.toString().toUpperCase())) 
            return true;    
    return false; 
}