這一定是一個愚蠢的問題,但我已將我的頭靠在牆上足夠長時間。.findOne未將結果傳遞給回調
簡短版本:我有一個查詢在Mongo控制檯中按預期返回結果,但在通過Mongo NodeJS包使用時不返回任何結果(或錯誤)。
var weatherCacheQuery = {
'location': {
'$near': {
'$geometry': {
type: 'Point',
coordinates: [location.coordinates[0], location.coordinates[1]]
},
'$maxDistance': 50000
}
},
'retrieved': {
'$gte': moment().subtract(2, 'hours').toDate()
}
};
this.db.collection('weather').findOne(
weatherCacheQuery,
function(err, doc) {
console.log(JSON.stringify(err));
console.log(JSON.stringify(doc));
}
});
正如你所看到的,沒有什麼過於複雜。
如果我轉儲查詢對象並將其粘貼到Mongo控制檯的findOne查詢中,它將返回一個與查看應該完全一致的單個結果。但在JS中,兩個console.log()返回null。
更奇怪的是,用相同的查詢查找()確實返回一個結果,但沒有一個我可以查看,因爲JSON.stringify()抱怨它是循環的。
任何人都可以指出我做錯的無疑荒謬的事情嗎?
您使用Node MongoDB驅動程序2.0嗎? –
如果你設置'weatherCacheQuery = {}',你會得到任何輸出嗎? – Jaco
@ExplosionPills - package.json顯示^ 2.0.45。 – user1381745