Cosmos DB Javascript存储过程-错误?

Cosmos DB Javascript存储过程-错误?,javascript,stored-procedures,azure-cosmosdb,Javascript,Stored Procedures,Azure Cosmosdb,我一直在观察Azure Cosmos DB中使用javascript API()的存储过程中的一些奇怪行为 假设数据库中有一个body.id='--'的文档,下面的过程将正确返回该文档。但是,如果我注释行“return found”,并用“if(1==1)”取消注释行,则存储过程返回一个空结果。我尝试将其更改为if(find){return find;}else{return false;}'-相同的空输出。同样,如果我写'found=found&&(1==1);'在'let found=c.b

我一直在观察Azure Cosmos DB中使用javascript API()的存储过程中的一些奇怪行为

假设数据库中有一个body.id='--'的文档,下面的过程将正确返回该文档。但是,如果我注释行“return found”,并用“if(1==1)”取消注释行,则存储过程返回一个空结果。我尝试将其更改为if(find){return find;}else{return false;}'-相同的空输出。同样,如果我写'found=found&&(1==1);'在'let found=c.body.id!=null&&c.body.id==t;'

这是Javascript错误还是我做错了什么

// SAMPLE STORED PROCEDURE
function sample() {
    __.filter(c=>{
        //return true;
        let t = "---";

        let found = c.body.id != null && c.body.id ==t;


  return found; <---
    //if (1==1){
    //    return found;
    //}

}
, {pageSize: -1}, 

    (a, b, c)=>{

        __.response.setBody(b);
            return;
    });
}
//示例存储过程
函数示例(){
__.filter(c=>{
//返回true;
让t=“--”;
让found=c.body.id!=null&&c.body.id==t;
发现退货{
__.答复.第1(b)段;
返回;
});
}

我将你的问题转述给我

以下JavaScript构造未针对Azure进行优化 宇宙数据库索引:

控制流(例如,if、for、while)函数调用

根据中的语句,不建议在
谓词函数中使用if


您可以通过
返回表达式过滤文档(例如x.isMetadata==true);

基本上,有足够的例子让我相信Cosmos DB中的Javascript是非常不可靠的。let found=c.body.id!=null&&c.body.id.toLowerCase()==t;撇开优化和性能不谈,我无法理解为什么在我的第一个示例中,当我对变量“found”执行任何操作时,过滤器停止工作。我尝试将其声明为const found=…然后编写“if(found)”return true否则return false’-仍然会有同样的奇怪行为。@Valerygavriov您可以在这里添加反馈,要求更多的陈述: