Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
如何从内部Loopback.io获取MongoDb连接_Mongodb_Loopbackjs - Fatal编程技术网

如何从内部Loopback.io获取MongoDb连接

如何从内部Loopback.io获取MongoDb连接,mongodb,loopbackjs,Mongodb,Loopbackjs,我正在编写一个远程方法,它将通过运行聚合管道查询得到极大的增强 为此,我需要获得实际的mongodb连接并直接使用它 我怎样才能按照 module.exports = function(ZipCodes) { ZipCodes.pipeline = function (cb) { //Get the MongoDB Connection var mongodbConnection = ***whatever magic*** var re

我正在编写一个远程方法,它将通过运行聚合管道查询得到极大的增强

为此,我需要获得实际的mongodb连接并直接使用它

我怎样才能按照

module.exports = function(ZipCodes) {
    ZipCodes.pipeline = function (cb) {
        //Get the MongoDB Connection
        var mongodbConnection = ***whatever magic***

        var result = mongodbConnection.db.zipcodes.aggregate( { $group :
                         { _id : "$state",
                           totalPop : { $sum : "$pop" } } },
                       { $match : {totalPop : { $gte : 10*1000*1000 } } } );
        cb(result);                    
    };

    ZipCodes.remoteMethod('pipeline', {
        returns: {arg: 'zips', type: 'array', root: false},
        http: {path:'/pipeline', verb: 'get'}
    });
};
我在datasources.json中将mongo定义为

{
  "db": {
    "name": "db",
    "connector": "memory"
  },
  "MongoDB": {
    "host": "localhost",
    "port": 27017,
    "name": "MongoDB",
    "connector": "mongodb"
  }
}

好的,我们做了更多的挖掘,主要是环回和mongo连接器的源代码。如果您想直接访问mongoDB连接,您可以,但要小心

module.exports = function(ZipCodes) {
    ZipCodes.pipeline = function (cb) {
        //Get the MongoDB Connection
        var mongodbConnection = ZipCodes.dataSource.connector.db;
        if (!mongodbConnection) {
            // may not be connected yet, you might have to do that manually:
            // (careful! this is asynchronous)
            ZipCodes.dataSource.connect(function(err, db) {
                mongodbConnection = db;
            });
        }

        // do whatever you need to with the mongo connection...
        cb(result);
    };

    // ... other stuff

};

即使有一种方法可以通过环回获取连接信息,然后直接使用node.js打开一个新连接并使用它,我想也可以。我认为这不是一个理想的解决方案。。。但是您可以随时获取datasources配置并创建到数据库的新连接:
var config=require('../../server/datasources.json').MongoDB