MongoDB 查询 returns Openshift 迁移后结果为空
MongoDB query returns empty result after Openshift migration
我遇到以下问题:我的应用程序 运行 在本地主机上正确,但在我的 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_string, function(err, db) {
这是我的套接字的连接方式(Openshift 案例):
var socket = io.connect("http://nodejs-myapp.rhcloud.com:8000"); //io(); for localhost case
这是我正在做的查询:
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
}
}
})
因此,当 运行 在本地主机上查询时,我的查询 return 得到了正确的结果,但在我的 Openshift 应用程序上却没有。此外,当我 运行 在我的 Openshift 应用程序 mongo shell 中查询时,正确的结果也是 returned...
发现问题:我从我的 nodejs 应用程序连接到一个数据库,该数据库与您在 Openshift 服务器上 运行 mongo
时默认连接的数据库不同。我的数据不在正确的数据库中...没有注意这个细节。
我遇到以下问题:我的应用程序 运行 在本地主机上正确,但在我的 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_string, function(err, db) {
这是我的套接字的连接方式(Openshift 案例):
var socket = io.connect("http://nodejs-myapp.rhcloud.com:8000"); //io(); for localhost case
这是我正在做的查询:
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
}
}
})
因此,当 运行 在本地主机上查询时,我的查询 return 得到了正确的结果,但在我的 Openshift 应用程序上却没有。此外,当我 运行 在我的 Openshift 应用程序 mongo shell 中查询时,正确的结果也是 returned...
发现问题:我从我的 nodejs 应用程序连接到一个数据库,该数据库与您在 Openshift 服务器上 运行 mongo
时默认连接的数据库不同。我的数据不在正确的数据库中...没有注意这个细节。