首页 > 解决方案 > 使用 openwhisk 操作在 Mongodb 中查询

问题描述

我正在尝试在 mongo db 上运行查找查询,我想在 openwhisk 操作中执行此操作。我用 nodejs 做同样的事情并且工作得很好,但是在 openwhisk 中我没有得到任何结果。我想它必须与javascript的异步执行有关。但是我在这个领域真的很新,我正在努力寻找解决方案。有什么建议么?我有工作的nodejs代码。

function main(){
    var mongodb = require('mongodb');
    var MongoClient = require('mongodb').MongoClient;

    MongoClient.connect('mongodb://172.29.91.113:27017/yelp', function(err, db) {
        if (err) throw err;
        var dbo = db.db("yelp");
        var collection = dbo.collection("Review");
        var a = [];

        function queryCollection(collection, callback){
            collection.find({stars:5}).limit(100).toArray(function(err, result) {
                if (err) {
                    console.log(err);
                } 
                a = result;
                callback();
                db.close();
            })
        } 

        queryCollection(collection, function(){
            return a;
        }); 
    })
}

标签: javascriptmongodbasynchronousopenwhisk

解决方案


将你的逻辑包装在一个 Promise 中,并在你的 Action 中返回这个 Promise


推荐阅读