javascript - 如何修复 MongoDB Stitch 函数中的 "Result undefined"

标签 javascript mongodb asynchronous mongodb-stitch

我正在 MongoDB 中创建 Stitch 函数并得到未定义的结果而不是 double。

我正在开发一个 iOS 应用程序,使用 MongoDB 数据库。我正在创建 Stitch 函数,并使用 callFunction(withName:withArgs:_:) 方法。我编写了一个函数来计算平均早晨值。我想将早上的值返回给应用程序。下面是代码。

exports = function(DAY,MONTH){
    var total = 0.0;
    var count = 0.0;
    var morning = 0.0;

    var collection = context.services.get("mongodb-atlas").db("database_name").collection("collection_name");
    var docs = collection.find({month: { $eq: MONTH },
    day: { $eq: DAY },
    hour: { $gte: 8 },
    hour: { $lt: 13 }
    }).toArray().then((data) => {
        data.forEach((el) =>{
            total = total +  el.value;
            count = count + 1.0; 
        });
        morning = total/count;
        console.log("morning");
        console.log(morning);
        return {morning};
    })
    .catch((error) => {
        console.log(error);
        return {morning};
    });
};

“”“输出”“”

早上好 869.5729166666666

result: { "$undefined": true } result (JavaScript): EJSON.parse('{"$undefined":true}')

"""-输出结束"""

我正在尝试返回双倍的早晨值,但是它返回 BSONUndefined。当我尝试从 iOS 应用程序获取结果时,我得到 """早上:BSONUndefined() """ 但在 return 语句之前,它会打印早上的值以正确缝合控制台。

最佳答案

以这种方式在 MongoDB find() 查询之前使用 return 语句

exports = function(DAY,MONTH){
    var total = 0.0;
    var count = 0.0;
    var morning = 0.0;

    var collection = context.services.get("mongodb-atlas").db("database_name").collection("collection_name");
    return collection.find({month: { $eq: MONTH },
    day: { $eq: DAY },
    hour: { $gte: 8 },
    hour: { $lt: 13 }
    }).toArray().then((data) => {
        data.forEach((el) =>{
            total = total +  el.value;
            count = count + 1.0; 
        });
        morning = total/count;
        console.log("morning");
        console.log(morning);
        return {morning};
    })
    .catch((error) => {
        console.log(error);
        return {morning};
    });
};

关于javascript - 如何修复 MongoDB Stitch 函数中的 "Result undefined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56966667/

相关文章:

javascript - 浏览器检测所需的实际图像大小

javascript - 是否可以在 Meteor 空格键模板中切换集合焦点?

javascript - 如何在其他 try block 中访问 try block 中的变量?

javascript - Angular js ng-重复重复项

node.js - 当更新时未传递相应值时,值在数据库内设置为 null

c# - 为什么异步方法调用者的行为很奇怪?

c# - 并行启动多个异步任务的最佳方式?

java - 处理 P3D 草图无法在 Javascript 模式下工作

javascript - 相当于 ng 重复的 polymer

javascript - javascript库如何忽略某些参数,或使某些函数参数为 "optional"?