Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.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
更新cosmosDB azure sql_Sql_Node.js_Azure Cosmosdb - Fatal编程技术网

更新cosmosDB azure sql

更新cosmosDB azure sql,sql,node.js,azure-cosmosdb,Sql,Node.js,Azure Cosmosdb,我正在尝试使用sql api更新在cosmosDB azure上创建的文档的值。问题在于,更新/删除/插入请求不起作用 client.queryDocuments( collectionUrl, UPDATE tableC SET prev = 12 WHERE condition ).toArray((err, results) => { if (err) res.json({ 'A': 12 }); else { res.

我正在尝试使用sql api更新在cosmosDB azure上创建的文档的值。问题在于,更新/删除/插入请求不起作用

client.queryDocuments(
    collectionUrl,
    UPDATE tableC
    SET prev = 12
    WHERE condition
).toArray((err, results) => {
    if (err) res.json({ 'A': 12 });
    else {
        res.json({ 'A': 15});
    }
})

CosmosDB风格的SQL只支持查询


不能使用数据操作SQL。

CosmosDB SQL不是ANSI SQL实现。它只支持以某种类似的方式进行查询,但这不是一回事

发件人:

Azure Cosmos DB支持使用SQL语言查询文档, 它植根于JavaScript类型系统,并且表达式 支持关系、层次和空间查询。蔚蓝 COSMOSDB查询语言是一个简单但功能强大的查询接口 JSON文档该语言支持ANSI SQL语法的子集 并添加了JavaScript对象、数组和对象的深度集成 构造和函数调用

所以基本上CosmosDB从SQL中获取了一些语法规则和约定,但仔细看,它是另一个野兽。Ansi SQL包含CosmosDB SQL API没有的内容,CosmosDB SQL包含Ansi SQL没有的内容

为什么?
不支持整个ANSI SQL是有道理的,因为SQL是为关系数据管理需求而设计的。CosmosDB不是一个关系数据库,它的更改模型将文档作为可变单元,而不是单个字段或集合。在DoucmentDB中,可以添加整个文档、更新整个文档或删除整个文档。只要这样,它就不需要传统SQL插入/更新/删除语法的复杂性

谢谢您的帮助,但是如果我想在Azure上有一个可以修改的数据库,我可以使用什么?您可以在documentDB中修改文档,而不是使用SQL语法。在documentDB中,如果要修改字段,则更新整个文档。看:@MezianiAmina你的问题解决了吗?如果是这样,那么你可以把答案标记为接受。我相信这是一个有效的问题,不应该被否决。术语“SQLAPI”与众所周知的(ANSI)SQL不一样,这一点并不明显,人们也可能期望它支持CRUD中的CUD。