如何从CosmosDb存储过程中的过滤器查询中检索值?

时间:2018-02-09 16:48:37

标签: stored-procedures azure-cosmosdb

我正在努力研究如何从CosmosDb存储过程中的过滤器查询中检索属性值。我敢肯定这一定相对简单,但似乎无法找到合适的组合。

var result = __.chain()
    .filter(function(doc) {
    return doc.id ==="1stDocId";
})
.map(function(doc) {
   return {
        id: doc.id,
        propertyA: doc.propertyA
   };
})
.value();
if(!result.isAccepted) throw new Error("The call was not accepted");

使用上面的代码或类似代码,我想要检索propertyA的值,然后在第二个查询中使用它,依此类推。 此时使用response.setBody返回 result 的值,我可以看到它位于数组中,但无法找到正确的代码来访问它。 结果[0] .PropertyA,结果[0] [0] .PropertyA不起作用,有人能指出我正确的方向吗?

我能够使用queryDocuments函数执行此类操作,但最终我的存储过程需要执行5或6个select语句,操纵两者之间的检索值。利用嵌套回调看起来非常混乱,一旦你有几个级别,就会很混乱。有没有更好的办法? 感谢。

1 个答案:

答案 0 :(得分:0)

我放弃了,并使用嵌套回调和'queryDocuments'编写了该过程。因为在某一点上我的过程需要一个switch语句,它执行数据库查找或提供硬值,我不得不在db查找分支回调中复制其余的queryDocument调用,这感觉是完全错误的。 但是,虽然不漂亮,但我的存储过程现在可以正常工作,在所有情况下都会返回正确的值。