2017-01-12 5 views
1

Je suis en cours d'exécution avec succès cette requête dans le shell:Pourquoi cette requête fonctionne-t-elle dans le shell mongo mais pas dans le pilote node mongo?

db.hourlydatas.find({'timeseries':ObjectId('1234')}) 

Essayer de traduire au conducteur mongo:

MongoClient.connect(config.db, function(err, db) { 
// Use the admin database for the operation 

var collection = db.collection('hourlydatas'); 

collection.find({'timeseries':'1234'}).toArray(function(err, docs) { 
// assert.equal(err, null); 
console.log("Found the following records"); 
console.log(docs); 
// callback(docs); 
});  

}); 

Cela ne retourne pas les documents, je suppose que je ne suis pas convertir la chaîne en un objectID. Est-ce possible dans le conducteur?

Répondre

1

Essayez cette

var ObjectId = require('mongodb').ObjectID; 
var collection = db.collection('hourlydatas'); 
collection.find({'timeseries':ObjectId('1234')}).toArray(function(err,docs) {...} 
+0

Ce n'est pas réellement un entier, sa chaîne d'ID d'objet et d'objet. L'objectif réel est une longue chaîne comme 5019ijasWQa231, mais je l'ai changé pour plus de simplicité – apdm

+0

Ok nevermind: p – meda

+0

@apdm voir ma mise à jour – meda

0

Il devrait fonctionner, vous êtes sûr que vous vous connectez à la même DB? vérifier si les deux connexions sont à tester ou prod ... J'ai une fois perdu beaucoup de temps sur cela juste pour trouver à la fin que mon mongo-shell a été connecté à prod alors que le nœud se connectait pour tester.