Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.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
Node.js Openshift迁移后MongoDB查询返回空结果_Node.js_Mongodb_Socket.io_Openshift - Fatal编程技术网

Node.js Openshift迁移后MongoDB查询返回空结果

Node.js Openshift迁移后MongoDB查询返回空结果,node.js,mongodb,socket.io,openshift,Node.js,Mongodb,Socket.io,Openshift,我有以下问题:我的应用程序在localhost上正确运行,但在我的Openshift平台上没有 我有一个MongoDB数据库,一个NodeJS后端使用socket.io 这是连接到我的数据库的URL: var connection_string = '127.0.0.1:27017/db'; if (process.env.OPENSHIFT_MONGODB_DB_PASSWORD) { connection_string = process.env.OPENSHIFT_MONGODB_

我有以下问题:我的应用程序在localhost上正确运行,但在我的Openshift平台上没有

我有一个MongoDB数据库,一个NodeJS后端使用socket.io

这是连接到我的数据库的URL:

var connection_string = '127.0.0.1:27017/db';

if (process.env.OPENSHIFT_MONGODB_DB_PASSWORD) {
   connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
   process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
   process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
   process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
   process.env.OPENSHIFT_APP_NAME;
}
以下是我连接数据库的方式:
mongodb.MongoClient.connect(“mongodb://”+connection\u字符串,函数(err,db){

这是我的插座的连接方式(Openshift案例):
var socket=io.connect(“http://nodejs-myapp.rhcloud.com:8000“”;//io();用于本地主机案例

这是我正在做的查询:

db.collection('tobaccoStores').ensureIndex({Coordinates:"2dsphere"}).then(function(result) {
    db.collection('tobaccoStores').find({
                "Coordinates": {$near:
                                {$geometry:
                                    {type:"Point", coordinates:[coords.coords.lng, coords.coords.lat]},
                                  $maxDistance: coords.maxdistance
                                }
                }
            })

因此,在localhost上运行时,我的查询会返回正确的结果,但在Openshift应用程序上不会返回正确的结果。此外,当我在Openshift应用程序的mongo shell中运行查询时,也会返回正确的结果…

发现问题:我从我的nodejs应用程序连接到的数据库与您所连接的数据库不同当您在Openshift服务器上运行
mongo
时,默认情况下e已连接。我的数据不在正确的数据库中…没有注意这些细节。

您是否在开发和Openshift系统上使用相同版本的MongoDB?我想Openshift我会运行2.6。事实上,我的本地计算机上的MongoDB版本是3.0.6,我的本地计算机上是2.4Openshift应用程序。但它会改变什么?查询似乎是一样的…@blondie我建议尝试降级您的本地mongodb版本并进行测试it@blondie,两者肯定不一样。我遇到了其他问题,不得不降级。在MongoDB的文档上,它说:“一旦升级到MongoDB 3.0,就不能降级到低于2.6.5的版本”。你知道我该怎么做吗?我已经在Openshift上加载了MongoDB的确切版本,在尝试运行它时,它说我的数据库版本有问题,这似乎符合逻辑。。。