MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Si j'ai un identifiant de document mongo en tant que chaîne, comment puis-je l'interroger en tant que _id?

Voulez-vous dire que vous avez la chaîne de 24 chiffres hexadécimaux d'un ObjectId ?

En supposant que c'est ce que vous voulez dire, la plupart des pilotes ont un moyen de prendre une chaîne et de la convertir en ObjectId. En JavaScript, c'est :

.find({_id:new ObjectId("4f91bfcfaa7c5687a0c686d4")})

Mise à jour pour être un peu plus utile pour le pilote node-native (d'après la documentation sur https://github.com/christkv/node-mongodb-native) :

// Get the objectID type
var ObjectID = require('mongodb').ObjectID;

var idString = '4e4e1638c85e808431000003';
collection.findOne({_id: new ObjectID(idString)}, console.log)  // ok
collection.findOne({_id: idString}, console.log)  // wrong! callback gets undefined